首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Sql注入预防技术仍然易受攻击?

Sql注入预防技术仍然易受攻击?
EN

Stack Overflow用户
提问于 2011-06-02 02:18:30
回答 5查看 279关注 0票数 1

如果我在我的网站上使用mysql_real_escape_stringaddslashes来避免sql注入攻击,这两个是否足以阻止SQL注入,所以它100%确定现在没有人可以使用SQL注入攻击?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-06-02 02:21:19

这取决于您的查询;如果您只讨论要在数据库中插入的值,mysql_real_escape_string就足够了,您不需要addslashes

如果您还在讨论变量表或列的名称,那么您将需要使用白名单,并且mysql_real_escape_string将不会阻止在这些列表上进行sql注入。

所以答案实际上是:不,这取决于你的查询

票数 4
EN

Stack Overflow用户

发布于 2011-06-02 02:20:58

根本不要使用addslashes;它不适合防止SQL注入。

仅使用mysql_real_escape_string。如果需要更改字符编码,请使用mysql_set_charset

票数 3
EN

Stack Overflow用户

发布于 2011-06-02 02:27:21

没有任何简单的“神奇”方法来防止SQL注入。mysql_real_escape_string是一个很好的开始,使用PDO (docs)更好。最重要的是,你需要看看你的数据库结构,看看你的查询,看看你的数据源,然后想清楚。数据从何而来?如果数据不是我所期望的,会发生什么?

在创建代码的整个结构时,应该考虑到控制应用程序逻辑的流程。防止SQL注入的最好方法是保持对数据库中内容的感知和控制。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6205835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档