Home > Backend Development > PHP Tutorial > javascript - 跨站攻击,看了有点蒙,求解

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

WBOY
Release: 2016-06-06 20:44:04
Original
1160 people have browsed it

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

为何这样的是不安全的

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

这样是安全的

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>
Copy after login
Copy after login

为何这样的是不安全的

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

这样是安全的

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

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

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

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

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

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

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

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

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

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

牛逼嗯解释。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template