在阅读了几篇关于PDO和MySQLi准备语句的文章之后,也阅读了关于准备语句和stackoverflow.com上的SQL注入的数十个问题,人们都说,正确地使用准备好的语句,不再需要从用户那里转义条目,但我仍然担心存在安全问题。
第一个问题:如果我仍然使用reg-exp对条目进行消毒,并在准备好的语句中使用它们之前转义,这是否就像我在接受它?
第二个问题:,如果准备好的声明正在做有关SQL注入-From人员的评论和答案的事情为什么仍然存在受损的数据库和越来越多的关于信用卡号码和密码的公开数据,即使是来自“大型”和知名网站的黑客帐户?这是否意味着,仅仅准备好的陈述并不是那么具有免疫力,还是一个完全不同的话题?
发布于 2013-05-10 11:35:23
如果我仍然使用reg-exp对条目进行消毒,然后在准备好的语句中使用它们之前转义,这是否就像我在接受它一样?
如果说准备好的声明是在做有关SQL注入-From的评论和答案的事情--为什么仍然存在着受损的数据库和越来越多的关于信用卡号码和密码的公开数据,即使是来自“大”和知名网站的账户被黑了?这是否意味着,仅仅准备好的陈述并不是那么具有免疫力,还是一个完全不同的话题?
因为:
发布于 2013-05-10 11:40:32
攻击者很聪明,他们试图寻找到数据库的原始方法。例如,他们可以将xss放在请求的浏览器头中,如果您在管理面板中使用统计数据,显示浏览器xss可以工作!这就是为什么处理输入是如此的重要。PDO把这项工作做得很好。
为了确保一切都好,你应该问自己一个问题:
引用php手册:
调用PDO::准备()和PDOStatement::execute() for将多次发出的具有不同参数值的语句,通过允许驱动程序协商查询计划和元信息的客户端和/或服务器端缓存,从而优化应用程序的性能,通过消除手动引用参数的需要,帮助防止SQL注入攻击。
发布于 2013-05-10 11:41:39
尽管如此,一个准备好的陈述的想法在总体上是一个聪明的想法-所以,一个开发商必须自己处理其他情况。
这是我的解决方案--一个库,它为所有内容提供占位符。,而不仅仅是两个标量数据类型。
https://stackoverflow.com/questions/16481216
复制相似问题