创建人:峰哥 | 更新时间:2012-06-18 18:55:28 | 收藏
0次阅读 |
【已有次修改】查看历史版本
PHP进行网站编程的时候要注意的细节问题非常多,但总的来说分为分为三个大类,sql注入,跨站脚本攻击,文件上传安全问题。
一、sql注入攻击
sql注入是指通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
举一个简单的例子,比如一篇文章页面的url是:http:/***/?article_id=1
用户打开这个URL的时候会提交一个参数article_id到服务器端以查询指定的文章,比如:
<?php
$article_id = $_GET['article_id'];
$sql = "select * from article where id = $article_id";
$query = mysql_query($sql);
......
?>
一般情况下上面这段代码看起来好像是可以正常工作的,但是如果我们把url手动改一下,改成:
http:/***/?article_id=0 union ***
这个时候在程序内获取的article_id就不是一个整数值了,而是一个sql语句,union后面攻击者可以随意的加上自己想执行的一些sql语句了。
所以我们定一个规矩就是所有的有用户输入值的地方都要做好sql注入的防范。
二、跨站脚本攻击
蹄脚本攻击就是指利用网站漏洞从用户那里恶意盗取信息。用户在浏览网站、使用即时通讯软件、甚至在阅读电子邮件时,通常会点击其中的链接。攻击者通过在链接中插入恶意代码,就能够盗取用户信息。
比如网站中有短消息的功能,用户可以随意的给他的好友发消息,有个用户发了如下的一段消息:
<script type="text/javascript">
alert("ok");
</script>
如果我们直接将这段消息显示给被发送用户的话,这个javascript代码就会在网岩浆中执行,可以看到一个警告框弹出来。用户甚至可以发送任意的javascript代码在网页中执行,以达到更加具有破坏性的目的。所以我们在平时写代码的时候,一定要注意在任何输出用户输入的字符的地方都要做好跨站脚本攻击的防范。
三、文件上传安全问题。
这个问题的影响是不言页喻的,危害非常大的。所以我们在任何有用户上传文件的地方要注意严格的限制文件的类型。