1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > mysql注入攻击与防御word_SQL注入防御与绕过的几种姿势

mysql注入攻击与防御word_SQL注入防御与绕过的几种姿势

时间:2021-07-02 18:34:34

相关推荐

mysql注入攻击与防御word_SQL注入防御与绕过的几种姿势

媒介

本文┞仿重要今后端PHP和MySQL数据库为例,参考了多篇文┞仿后的集合性文┞仿,迎接大年夜家提出小我看法,互促成长。

/p/26263513

一、 PHP几种防御姿势

解释:

PHP设备文件php.ini中的display_errors=Off,如许就封闭了缺点提示。

2. 魔术引号

解释:

当php.ini里的magic_quotes_gpc=On时。提交的变量中所有的单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)会主动转为含有反斜线的转义字符。

魔术引号(Magic Quote)是一个主动将进入 PHP 脚本的数据进行转义的过程。(对所有的 GET、POST 和 COOKIE 数据主动运行转义)

PHP 5.4 之前 PHP 指令 magic_quotes_gpc 默认是>

magic_quotes_gpc与addslashes的差别用法:

1)对于magic_quotes_gpc=on的情况

(admin# -->0x61646d696e23)

我们可以纰谬输入和输出数据库的字符串数据作addslashes()和stripslashes()的操作,数据也会正常显示。

如不雅此时你对输入的数据作了addslashes()处理,那么在输出的时刻就必须应用stripslashes()去掉落多余的反斜杠。

2)对于magic_quotes_gpc=off 的情况

必须应用addslashes()对输入数据进行处理,但并不须要应用stripslashes()格局化输出,

因为addslashes()并未将反斜杠一路写入数据库,只是赞助mysql完成了sql语句的履行。

参考:

《addslashes函数解释》:

/manual/zh/function.addslashes.php

《对于magic_quotes_gpc的一点熟悉》:

/bbs/viewthread.php?tid=6860&page=1&extra=page=1

解释:

mysql_real_escape_string()函数转义 SQL 语句中应用的字符串中的特别字符。

下列字符受影响:\x00

\n

\r

\

'

"

\x1a

如不雅成功,则该函数返回被转义的字符串。如不雅掉败,则返回 false。

本扩大自 PHP5.5.0 起已放弃,并在自 PHP 7.0.0 开端被移除。

关于编码道理:

因为完全性问题,建议应用拥有Prepared Statement机制的PDO和MYSQLi来代替mysql_query,应用的是mysqli_real_escape_string

《 PHP防SQL注入不要再用addslashes和mysql_real_escape_string了》:

/hornedreaper1988/article/details/43520257

《PDO防注入道理分析以及应用PDO的留意事项》:

http://zhangxugg-163-/blog/1835721

5. htmlspecialchars()

解释:

htmlspecialchars()函数把预定义的字符转换为 HTML实体。

用于对URL的构成部分进行个别编码,而不消于半数个URL进行编码。

预定义的字符是:&(和号)成为&

"(双引号)成为"

'(单引号)成为'

>(大年夜于)成为>

6. 用正则匹配调换来过滤指定的字符preg_match

preg_match_all()

preg_WordStr

参考:

4. mysql_real_escape_string

《preg_match解释》:

/manual/zh/function.preg-match.php

《preg_WordStr解释》:

/manual/zh/function.preg-WordStr.php

7. 转换数据类型

解释:

payload:

根据「检查数据类型」的原则,萌芽之前要将输入数据转换为响应类型,如uid都应当经由intval函数格局为int型。

8. 应用预编译语句

解释:

绑定变量应用预编译语句是预防SQL注入的最佳方法,因为应用预编译的SQL语句语义不会产生改变,在SQL语句中,变量用问号?表示,进击者无法改变SQL语句的构造,大年夜根本上杜绝了SQL注入进击的产生。

代码示例:

参考:

《Web安然之SQL注入进击技能与防备》:

关于preg_match过滤可以看参考文┞仿,文┞仿里讲得很具体了。

//06/13/web-security-sql/

二、 几种绕过姿势

推荐阅读

大年夜多半云备份产品以专有的备份格局存储数据。在产生灾害的情况下,数据必须被提取,并由虚拟机有企业客户>>>详细阅读

地址:/lsqh/35031.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。