安全地将用户输入写入php文件

安全地将用户输入写入php文件,php,Php,我有一个web表单,用于安装用户提交sql凭据和服务器等的应用程序。我想获取这些数据并将其写入config.php,如: $_MYSQL['server'] = ''; $_MYSQL['username'] = ''; $_MYSQL['password'] = ''; $_MYSQL['database'] = ''; 根据他们提交的内容进行动态更新,以便稍后包含在其他文件中。问题是我不想将用户提交的数据写入php文件,这显然是不安全的。如何安全地执行此操作?您必须避开用户输入,并将数据存

我有一个web表单,用于安装用户提交sql凭据和服务器等的应用程序。我想获取这些数据并将其写入config.php,如:

$_MYSQL['server'] = '';
$_MYSQL['username'] = '';
$_MYSQL['password'] = '';
$_MYSQL['database'] = '';

根据他们提交的内容进行动态更新,以便稍后包含在其他文件中。问题是我不想将用户提交的数据写入php文件,这显然是不安全的。如何安全地执行此操作?

您必须避开用户输入,并将数据存储为序列化版本或数组(),这将为您以安全的方式进行此操作提供一个良好的起点

我知道这个问题是关于创建裸php文件的,但序列化将更安全,更易于使用


干杯

很多著名的软件都会以这种方式自动生成配置文件。只要您从字符串中删除不需要的字符,并对表单输入执行适当的验证,您就可以了

在这个特定的实例中,检查MySQL凭据是否安全的一个简单方法是,在将其写入配置文件之前,尝试使用详细信息连接到服务器


此外,如前所述,安装脚本无论如何都应该被锁定,并且首先只对受信任的用户开放

“问题是我不想将用户提交的数据写入php文件”,那个么你们会怎么做?一个config.php是解决方案,没有人可以从公共URL看到您的mysql配置。这里有什么不安全的地方?这个用户不是已经是管理员了吗?是的,但是如果文件仍然在服务器上,其他人可以访问,我不希望人们能够任意地将代码写入php文件。youssef:我的意思是,我不想在没有检查并确保安全的情况下将数据写入php文件。但是你应该删除或锁定一个php文件安装文件!或者,即使没有任何代码注入,“某人”也会把整个网站搞得一团糟!如果在写入文件时数据将被放置在单引号之间,是否会不安全呢?我想您将从表单中获得这些数据,并且它不会被用作查询的参数,就像登录凭据一样,所以我认为即使这样避免引号也是不必要的。(如果用户的db密码包含引号怎么办?)不,但是如果有人提交了一个用户名,如“;phpinfo();$x=”…那么我们将php代码写入config.php。这只是一个字符串,serialize将处理它,您必须评估该字符串以使其变得危险:)并且不太安全。简单的请求将向uservar_显示凭证导出是为了输出一个“可解析字符串”,这不是存储变量的“干净”方式(只是我的意见);)通过设计,ValuExod产生的代码是用来评估它的,因此不是真正安全的,序列化是通过设计变量的状态来存储的,这就是为什么我认为它不是“干净”的原因。method@Dariusz呃,朋友,你误解我了。你被问到的是现实生活中的例子,而不是一些基于缺乏if知识和错误假设的理论暗示。@Shrapnel上校,我理解你的观点,问题也很好,我知道我的假设实际上可能是错误的,如果我有一个现实生活中的例子,我会给你贴出来。但这只是我的观点,我认为“不是一些基于缺乏if知识和错误假设的理论暗示”是一种冒犯。。。这是离题了,停止火焰制造和平:)@Dariusz我真的很抱歉这被视为冒犯,但实际上这是事实。它的功能没有问题,它已经逃逸了一切。不是因为修路,而是因为明显的一致性原因。没有人需要一个函数会在“简单”或$character上失败。