时间: 2020-10-10|tag: 61次围观|0 条评论

php是一门上手很容易,比较随性的计算机 编程语言,刚上班的时候对php安全方面懂得不是很多,曾写过一些程序:前台提交的数据没有经过转义(<和>之类的 html标签没有转成html实体),测试过程中后显示用户输入的内容成了html的标签格式,很是丢人啊,丢人是小事,重要的是程序的安全性没有保证。     以前看过一道很简单的面试题,大概意思是从:http://www.phpstar.cn/?category=php中获取获取参数category的值。题目很简单相信写过php的人都能把category的值得出来,比如$_GET['category']这样写的人比比皆是,这样写不能说不能取到值,只是没有经过安全性的处理。     下面说一说php的安全的例子:     1.include的使用。       <?php             include $action . '.php';         ?>         其中的$action变量可能是从外边get方式的来的,这样看貌似是没有问题,但是如果$action = ‘http://www.baidu.com/error’呢?所以这里要加一个判断:要引入的文件是不是存在   <?php       if (file_exists($action . '.php')) {           include $action . '.php';       }   ?>          2.跨站运行脚本xss:比如一个评论框中用户输入   <script type="text/javascript">       alert('IT博客!');   </script>          如果程序没有做什么处理直接显示的话,想想会有什么事情发生?一个弹窗就显示在用户的眼前“IT博客!”。     3.SQL注入   <?php       $sql = "SELECT * FROM user WHERE       username = '{$username}' AND passw = '{$passw}'";       $result = mysql_query($sql);   ?>          假如说$username获取过来的值是:admin ‘ or ’1 = 1,$passw 亦是如此:passw ‘ or ’1 = 1,以上的sql会变成   <?php       $sql = "SELECT * FROM user WHERE  username = 'admin' or '1 = 1' AND passw = 'passw' or '1 = 1' ";       $result = mysql_query($sql);   ?>         减少这样的不 安全编程的方法很简单:对从用户端传过来的数据进行处理数字用intval,字符串用htmlspecialhtmlspecialchars
    上一篇: RemoveXss函数主要用于PHP中跨站脚本的过滤 - 网站

    下一篇: 利用CI自带的security安全类实现防止跨站请求-表单
本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《php web网站开发安全 – 网站安全 – 自学php
   

还没有人抢沙发呢~