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 학습자의 빠른 성장을 도와주세요!