可以通过调用以下方法检索Java vm参数:
class Student(models.Model):
name = models.CharField(max_length=50)
surname = models.CharField(max_length=50)
student_ID = models.CharField(unique=True, max_length=14,
validators=[RegexValidator(regex='^.{14}$',
message='The ID needs to be 14 characters long.')])
photo = models.ImageField(upload_to='students_images')
email = models.EmailField()
phone = models.CharField(max_length=15, )
def __str__(self):
return self.name + self.surname
此调用明确排除了主要的args
返回传递给Java虚拟机的输入参数,不包含main方法的参数
一旦主要方法存在,可以安全地假设通过命令行提供参数从内存中擦除,或者我们之后可以安全地清理吗? (在此特定示例中,我希望用户提供加密/解密密钥),该密钥应尽可能短地保留在内存中。
答案 0 :(得分:1)
假设通过命令行提供参数是否安全 一旦主要方法存在,就从内存中擦除
肯定不是。
命令行是OS进程的一个属性。无论您启动什么JVM或应用程序,只要进程存在,操作系统就会保留原始命令行。例如。在Linux上,可以通过/proc/PID/cmdline
访问。