首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当参数字符集为utf-8时,在php中使用附加斜杠安全吗?

当参数字符集为utf-8时,在php中使用附加斜杠安全吗?
EN

Stack Overflow用户
提问于 2016-05-11 10:47:14
回答 1查看 1.6K关注 0票数 1

我读过很多文章,谈到加法对于SQL注入是不安全的,但它们都引用了使用GBK编码的相同示例。因此,我的问题是:当参数charset为utf-8时,使用addslashes()来防止php中的SQL注入安全吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-11 11:24:39

事实上,其中有两个问题。所以最好把它们分开说。

对于这个问题

如果字符集是utf8,那么使用addslashes()安全吗?

答案是肯定的,它是安全的。

以其本身为例,如果字符集为utf8,则添加斜杠可以生成用于string文字中的安全序列。

然而,作为一项保护措施,其目的是“处理所有输入数据以使其安全”,这是通常使用的措施,但事实证明,这是致命的不安全措施。对于这个问题

使用addslashes()来防止SQL注入安全吗?

这是唯一的答案:

不行!

仅仅因为这个诚实的功能与任何注射的保护无关。从来没有过。

你必须了解的是,主要威胁并不是来自于半神话般的GBK漏洞,而是来自对此函数的滥用。并不是为了保护您不受注射的影响。保护的主题比简单的字符串转义要复杂得多。

问题是存在一个很多规则都要记住。有很多可能失败的地方。

由于这些原因,一个简单的字符串转义不能被看作是一个包罗万象的保护规则.

从这个角度来看,参数化查询虽然没有提供100%的保护,但无论如何都可以被认为是一种更好的方法,消除了三个最危险的威胁:

  • 因为数字也包括在内,所以无法通过数字文字进行注入。
  • 由于完全格式化,错误转义的标识符不是漏洞,而是开发阶段错误。
  • 由于自动格式化,消除了人为错误。

以上这三个原因,我认为足以改变您的做法。

此外,适当地实现参数化查询会使您的代码更加简洁。给我你的基于加法斜杠的代码片段,我将告诉你如何使它短3-5倍,更干净。

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

https://stackoverflow.com/questions/37160358

复制
相关文章

相似问题

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