Web信息安全实践_4.1 XSS防御

XSS 存在的三个条件

  • 网站应用程序必须接受用户的输入信息
  • 用户的输入会被网站用来创建动态内容
  • 用户的输入验证不充分
    • 输入过滤,输出转义:检查用户输入含有攻击信息,尽可能过滤攻击信息;如果不能判断哪些是攻击信息,那么要使得显示的时候不能发送攻击
 

输入过滤

使用黑名单,从用户的输入中删除 <script>
  • 缺点:很难保证完全;限制了用户展示代码
<scr<script>ipt> //若仅过滤一个script,其他不检查
some<<b>script>alert('hello')<</b>/script //在标签中加标签,防止被过滤
// 伪协议JavaScript
<img src=javascript:alert('Hello')> 
<table background="javascript:alert('Hello’)”>
// 伪协议JavaScript
<img src=javascript:alert('Hello')> 
<table background="javascript:alert('Hello’)”>
 
// 伪协议JavaScript
<img src=javascript:alert('Hello')> 
<table background="javascript:alert('Hello’)”>
// 编码绕过防御措施
%3cscript%3ealert(document.cookie) %3cscript%3e
 
 

 输出转义

// www.myzoo.com/users.php
$profile = htmlspecialchars($profile); 
//htmlspecialchars:把特殊字符(如< /)特殊编码,经过特殊编码后script不会被识别成脚本语言,但显示时仍以字符原样显示

XSS 防御: httponly cookie

微软提出,保护cookie策略
➢ 大多数浏览器都支持 httponly cookie
➢ 仅在传输 HTTP (或 HTTPS )请求时才使用 httpOnly 会话 cookie
➢ 防止通过 XSS 窃取会话 cookie

猜你喜欢

转载自www.cnblogs.com/tianjiazhen/p/12235883.html