编辑如果您打算回答这个问题,请至少阅读它。不要简单地阅读标题,然后谷歌'sql injection php',并将结果粘贴为答案
首先,我很清楚有很多关于如何最好地防止 SQL 注入的可用资源,但我的问题特别是关于是否只需很少的努力就足够了。
我签约的一个组织最近被告知,他们以前的承包商开发的合作伙伴 (PHP) 网站存在重大安全问题(我个人最喜欢的是通过在 URL 中使用字符串“紧急”,您可以获得未经身份验证的访问任何网站中的页面...)
我被要求审查 PHP 站点的安全性并突出显示任何主要问题。我从以前使用该站点的经验中知道,编码标准确实很糟糕(例如,跨页面重复的大量代码,变化率约为 5%,数百个未使用的变量,$var = "yes" 代替布尔值,编写的 SQL 语句进入每个脚本,默认情况下不安全(某些页面忘记验证用户)等)。审查该网站是一个痛苦的提醒,世界上有一些真正的白痴自称开发人员。
由于这些代码质量问题,我只想强调严重和半严重的安全问题。如果我注意到网站的每一个问题,我的审查将需要数周时间。
我不是 SQL 注入方面的专家,但据我了解,您必须能够在注入任何其他类型的语句之前关闭现有查询的引用字符串。那么以下代码行是否足够?
"'".str_replace("'","''",$_POST['var_name'])."'"
我对改进或更改代码的建议不感兴趣,只是在这种情况下是否可以通过 $_POST['var_name'] 进行 SQL 注入。str_replace
如果您不熟悉 PHP ,请用第二个参数替换第一个参数的所有实例,而不仅仅是第一个实例。
非常感谢任何输入。