本文实例讲述了php+mysql防止sql注入的方法。分享给大家供大家参考,具体如下:
sql注入
例:脚本逻辑
$sql = "lect * from ur where urid = $_get[urid] ";
案例1:
复制代码 代码如下: lect * from t where a like ‘%xxx%’ or (if(now=sysdate(), sleep(5), 1)) or b like ‘1=1 ‘;
案例2:
复制代码 代码如下: lect * from t where a > 0 and b in(497 and (lect * from (lect(sleep(20)))a) );
案例3:
复制代码 代码如下: lect * from t where a=1 and b in (1234 ,(lect (cas师说翻译e when (5=5) then sleep(5) el 5*(lect 5 from information_schema.character_ts) end)) );
监控以下方法
sleep() — 一般的sql盲注都会伴随sleep()函数出现,而且一般至少sleep 5秒以上
mid()
char()
ord()
sysdate()
substring()
databas()
schema()
ur()
version()
current_ur()
load_file()
outfile/dumpfile
information_schema
table_name
fwrite()/fopen()/file_get_contents() — 这几个是php文件操作函数
应对方法:
1.mysql_escape_string()
转义特殊字符((php 4 >= 4.3.0, php 5))(mysql_real_escape_string必须先链接上数据库,否则会报错)
下列字符受影响:
\x00 //对应于ascii字符的null
\n //换行符且回到下一行的最前端
\r //换行符
\ //转义符
‘
“
\x1a //16进制数
如果成功,则该函数返回被转义的字符串。如果失败,则返回 fal。
2.addslashes()
: 函数返回在预定义字符之前添加反斜杠的字符串 (stripslashes()
实现字符串还原)
预定义的字符有:
单引号(’)边塞诗句
双引号(”)
反斜杠(\)
null
3.prepared statements(预处理机制)
<?php$mysqli = new mysqli("example.com", "ur", "password", "databa");if ($mysqli->connect_errno) { echo "failed 陈情表作者to connect to mysql: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;}/* non-prepared statement */if (!$mysqli->query("drop table if exists test") || !$mysqli->query("create table test(id int)")) { echo "table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;}/* prepared statement, stage 1: prepare */if (!($stmt = $mysqli->prepare("inrt into test(id) values (?)"))) { echo "prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;}/* prepared statement, stage 2: bind and execute */$id = 1;if (!$stmt->bind_海底两万里主要内容param("i", $id)) { echo "binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;}if (!$stmt->execute()) { echo "execute failed: (" . $stmt->errno . ") " . $stmt->error;}?>
更多关于php相关内容感兴趣的读者可查看本站专题:《php程序设计安全教程》、《php安全过滤技巧总结》、《php运算与运算符用法总结》、《php基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教小班游戏观察记录程》及《php常见数据库操作技巧汇总》
希望本文所述对大家php程序设计有所帮助。
本文发布于:2023-04-07 08:59:40,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/54f49cd69fa556342cf29eb8a7154a07.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:PHP+mysql防止SQL注入的方法小结.doc
本文 PDF 下载地址:PHP+mysql防止SQL注入的方法小结.pdf
留言与评论(共有 0 条评论) |