程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对
用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据
库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的
SQL Injection,即SQL注入。 受影响的系统:对输入的参数不进行检查和过滤的系统
SQL注入过程
正常来讲,我们通过地址接收一些必要的参数如:
hello.php?id=2 页面中我们会使用 2 写入到SQL语句中
正常情况:Select * From Table where id=2
如果我们对SQL语句熟悉,就知道2 我们可以替换成我们需要的SQL语句
如:and exists (select id from admin)
2、防止注入的几种办法
其实原来就是我们需要过滤一些我们常见的关键字和符合如:
Select,insert,update,delete,and,*,等等
例子:
function inject_check($sql_str) {
return eregi('select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file
|outfile', $sql_str); // 进行过滤
}
或者是通过系统函数间的过滤特殊符号
Addslashes(需要被过滤的内容)
3、PHP其他地方安全设置
1、register_globals = Off 设置为关闭状态
2、SQL语句书写时尽量不要省略小引号和单引号
Select * From Table Where id=2 (不规范)
Select * From ·Table· Where ·id·=’2’ (规范)
3、正确的使用 $_POST $_GET $_SESSION 等接受参数,并加以过滤
4、提高数据库命名技巧,对于一些重要的字段可根据程序特点命名
5、对于常用方法加以封装,避免直接暴露SQL语句
分享到:
相关推荐
PHP防止SQL注入的研究.pdf
php防止SQL注入方法-个人学习篇 学习PHP和安全的人可以看看。
本文主要介绍了php防止sql注入的方法。具有很好的参考价值,下面跟着小编一起来看下吧
从360提供的PHP防SQL注入代码改成的一个类,从SQL注入和HTTP跨站两个方面入手,解决网站存在安全风险的问题,希望对朋友们有所帮助。
php中防止SQL注入的方法,安全,PHP代码编写是一方面,PHP的配置更是非常关键。
5.利用instr()函数防止SQL注入攻击 23 6.跨站式SQL注入技巧 25 7. 防范Sql注入式攻击 27 8.PHP与SQL注入攻击 29 9.SQL注入攻击零距离 30 10.SQL注入技术和跨站脚本攻击的检测 34 11.菜鸟入门级:SQL注入攻击 39 12. ...
从360提供的PHP防SQL注入代码改成的一个类,从SQL注入和HTTP跨站两个方面入手,解决网站存在安全风险的问题,希望对朋友们有所帮助。如果小伙伴们有更好的解决方案,欢迎发布过来大家一起学习交流。
本文实例讲述了PHP防止sql注入小技巧之sql预处理原理与实现方法。分享给大家供大家参考,具体如下: 我们可以把sql预处理看作是想要运行的 SQL 的一种编译过的模板,它可以使用变量参数进行定制。 我们来看下它有...
主要介绍了php防止sql注入漏洞代码和分析,最近提供了几种常见攻击的正则表达式,大家参考使用吧
本文实例分析了php防止sql注入简单方法。分享给大家供大家参考。具体如下: 这里只说一个简单的方法 防止Sql注入的方法有很多,这里要说的其实就是漏洞演练平台Dvwa里的一种方式 直接看high级别的就可以了 $id = $_...
使用PHP实现防止sql注入功能 一、 开发环境 1、环境搭建:Windows 7+Apache 2.4.18+MySQL 5.7.11+PHP 7.1.0。 2、文本编辑器:Sublime 3。 二、主要技术 本案例主要在PHP中分别使用PDO的quote()方法和prepare()...
本文实例讲述了php防止sql注入中过滤分页参数的方法。分享给大家供大家参考。具体分析如下: 就网络安全而言,在网络上不要相信任何输入信息,对于任何输入信息我们都必须进行参数过滤。对此,我们先来看看下面的...
本文介绍了php防止sql注入的代码实例,大家参考使用吧
对于攻击者来说,进行SQL注入攻击需要思考和试验,对数据库方案进行有根有据的推理非常有必要(当然假设攻击者看不到你的源程序和数据库方案),考虑以下简单的登录表单:复制代码 代码如下:<form action=”/...
注入漏洞代码和分析 代码如下: <?php function customerror($errno, $errstr, $errfile, $errline) { echo <b>error number:</b> [$errno],error on line $errline in $errfile ; die(); } set...
本篇文章介绍了,php中防止SQL注入的最佳解决方法。需要的朋友参考下