我意识到这个问题已被提出并被解决,但我的变化有点不同。
我正在创建一个小应用程序来捕获用户的一些字符串。捕获的所有数据都来自简单的文本输入。这些数据将使用php存储在mysql数据库中。但是,与此主题提出的其他问题不同,此数据永远不会用于下载到csv之外的任何其他内容。它永远不会显示在网页上,也不会用于执行脚本。没有密码或登录或任何东西。表格将存在少量时间,目标受众是几十人的当地社区。 p>
我的问题是,由于此应用程序的简单性,使用mysqli_real_escape_string清理数据是否足以防止注入或其他有害行为?
答案 0 :(得分:1)
您应该将所有输入内容(file_put_contents)推送到文件并存储文件路径以便以后下载,不需要使用数据库来执行该简单任务。
答案 1 :(得分:1)
我认为防止sql注入的最佳功能是:
htmlspecialchars();
因此,如果您使用POST方法从表单中获取此信息,则以下代码应足够安全:
$value1 = htmlspecialchars($_POST['value1']);
$value2 = htmlspecialchars($_POST['value2']);
$value3 = htmlspecialchars($_POST['value3']);
//and so on
答案 2 :(得分:0)
根据我的说法,你应该使用mysqli_real_escape_string作为它的用途。此外,为了增加安全性,您应该创建并使用" BLACKLISTED"关键字并在mysqli_real_escape_string之前对它们进行正则表达式检查。