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

WBOY
發布: 2016-06-06 20:44:04
原創
1100 人瀏覽過

<code><form method="post" action="test_form.php"></form>
<script>alert('hacked')</script>
</code>
登入後複製
登入後複製

为何这样的是不安全的

<code>htmlspecialchars处理后
<form method="post" action="test_form.php/">
<script>alert('hacked')</script>">
</form></code>
登入後複製
登入後複製

这样是安全的

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

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

回复内容:

<code><form method="post" action="test_form.php"></form>
<script>alert('hacked')</script>
</code>
登入後複製
登入後複製

为何这样的是不安全的

<code>htmlspecialchars处理后
<form method="post" action="test_form.php/">
<script>alert('hacked')</script>">
</form></code>
登入後複製
登入後複製

这样是安全的

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

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

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

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

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

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

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

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

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

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

牛逼嗯解释。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!