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安全编程的一些方法总结,感谢您的阅读

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

  • 相关阅读:
    10 个超酷的加载中的 Gif 动画
    国内CDN公共库
    http://www.cnbeta.com/articles/306769.htm
    玩转WIN7的MKLINK
    盘点国内网站常用的一些 CDN 公共库加速服务
    15 个很棒的 Bootstrap UI 界面编辑器
    2014 年 20 款最好的 CSS 工具
    Web 开发中 20 个很有用的 CSS 库
    20+ 个很有用的 jQuery 的 Google 地图插件
    12 个 Web 设计师必备的 Bootstrap 工具
  • 原文地址:https://www.cnblogs.com/lovecucu/p/6096890.html
Copyright © 2011-2022 走看看