search

Home  >  Q&A  >  body text

javascript - 跨站攻击,看了有点蒙,求解

<form method="post" action="test_form.php"/><script>alert('hacked')</script>

为何这样的是不安全的

htmlspecialchars处理后
<form method="post" action="test_form.php/"><script>alert('hacked')</script>">

这样是安全的

test_form.php"/ 小白怎么看都觉得只是两个" /换了个位置

出自http://www.w3school.com.cn/php/php_form_validation.asp

阿神阿神2902 days ago498

reply all(4)I'll reply

  • ringa_lee

    ringa_lee2017-04-10 14:33:55

    原谅我刚才看错了,还以为只讨论htmlspecialchars。

    防范xss首先应从格式规范上面入手。比如你那个页面表单里的姓名、电邮、网址,都是有格式的,取得参数值的时候用正则表达式或者手写个函数校验一下,能省不少事情。

    再比如评论这种没有格式规范的,或者格式当中允许出现html格式字符的,在输入或者输出的地方,用htmlspecialchars处理一下。这个函数的作用就是把一些html格式字符转化为实体,这样就会直接显示出来而不会被解析了。

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-10 14:33:55

    这里有篇文章,传送门:
    XSS 与 CSRF 两种跨站攻击

    reply
    0
  • 黄舟

    黄舟2017-04-10 14:33:55

    可以参考下我以前总结的blog,详情

    htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。

    htmlspecialchars()是将一些敏感的字符进行了转义。避免一些别有用心的用户利用特殊字符来实现分割原本要执行的语句,产生歧义,或分割为两条语句,或更多从来实现破坏的目的。

    总之,就是永远不要相信用户提交的任何数据,一定要在入库或使用前要进行预处理。

    reply
    0
  • ringa_lee

    ringa_lee2017-04-10 14:33:55

    牛逼嗯解释。

    reply
    0
  • Cancelreply