防止sql语句编写注入攻击
来源:互联网 发布:国外发展人工智能吗 编辑:程序博客网 时间:2024/06/04 22:13
通常简单的有直接在登陆处写用户名为 ‘ or 1=1 #来登陆,密码随便填写,如果没有防范,就直接登陆了,防止方法,两个函数,
一、addslashes(string)string 必须,规定要转义的字符串
addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。
预定义字符是:
单引号(’)
双引号(”)
反斜杠(\)
NULL
该函数可用于为存储在数据库中的字符串以及数据库查询语句准备字符串。
注释:默认地,PHP 对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。所以您不应对已转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
二、mysql_real_escape_string(string,connection) string 必需。规定要转义的字符串,connection 可选。规定 MySQL 连接。如果未规定,则使用上一个连接。函数转义 SQL 语句中使用的字符串中的特殊字符 。
下列字符受影响:
\x00
\n
\r
\
’
”
\x1a
如果成功,则该函数返回被转义的字符串。如果失败,则返回 false。
举例1
try3.php
<!DOCTYPE html><html lang="en-us"><head> <meta http-equiv="content-type" content="text/html;charset=utf8"> <title>-_-</title></head> <body> <form action="try4.php" method="post" enctype="multipart/form-data"> 用户名: <input type="text" name="name"><br><br> 密码: <input type="password" name="pwd"> <input type="submit" value="提交"> </form> </body></html>
try4.php
<?php$link=mysql_connect("localhost","root","pxy") or die(mysql_error());mysql_select_db("test") or die(mysql_error());mysql_query("charset=utf8");var_dump($_POST);$arr=$_POST;$sql="select * from users where name='{$arr['name']}'' and pwd='{$arr['pwd']}'";echo $sql;$res=mysql_query($sql) or die(mysql_error());if($res){ echo "登陆成功";}else{ echo "登陆失败";}
用户名 输入 ‘ or 1=1 #,密码输入12;结果,登陆成功,
输出sql语句和结果:select * from users where name=” or 1=1 #” and pwd=’12’登陆成功
将$arr[‘name’]=addslashes($arr[‘name’]);
sql语句:select * from users where name=’\’ or 1=1 #” and pwd=’12’;
结果,登陆失败,
由此,可知,addslashes()函数可以防止一定的sql语句攻击,原理就是通过对一些字符转义,另外一个函数用法相似。网站安全防范,仍然有待提高。
- 防止sql语句编写注入攻击
- SQL注入防止攻击
- 防止sql注入攻击
- 防止SQL注入攻击
- 防止SQL注入攻击
- 防止SQL注入攻击
- 防止sql注入攻击
- 防止SQL注入攻击
- 防止SQL注入攻击
- 防止SQL注入攻击
- 参数化SQL语句,防止SQL注入漏洞攻击
- 防止sql注入式攻击
- 防止SQL注入式攻击
- 防止SQL注入式攻击
- 防止SQL注入式攻击
- 防止sql注入式攻击
- 防止SQL注入式攻击
- 防止SQL注入式攻击
- 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest F - Infinite Go
- 工作中遇到ListView和ScrollView的冲突
- 瀑布流PinterestLikeAdapterView实现原理
- iOS面试题 一
- sql server之索引的查询路径
- 防止sql语句编写注入攻击
- 第三周 项目四 顺序表的应用2(。。)
- CanOpen协议【CanFestival】移植到STM32
- C语言——伸缩型数组成员
- Unity3D研究院之主角面朝方向一定区域内对象角度计算(四十五)
- iOS内存管理---block机制详解
- GridView单选/多选模式
- 未选择的路
- python 数据处理学习pandas之DataFrame(一)