看看有哪些 Web 攻击技术( 二 )


3. HTTP 首部注入攻击HTTP 首部注入攻击(HTTP Header Injection)是指攻击者通过在响应首部字段内插入换行,添加任意响应首部或主体的一种攻击 。比如重定向至任意的 URL、替换掉要返回的主体内容等 。
比如存在某个需要重定向的页面,本来的 header 信息是这个样子的:
Location: http://example.com/?cat=101因为重定向需要带回参数,攻击者就诱使用户在参数中加入攻击代码 —— 加入或替换任意的 header 信息 。(下面这个 Location 可能不会生效,不同的浏览器对重复的 header 字段有不同的处理方式)
Location: http://example.com/?cat=101(%0D%0A:换行符)Location: http://xxx.com4. 会话劫持攻击会话劫持(Session Hijack)攻击是指攻击者通过某种手段拿到了用户的会话 ID,并非法使用此会话 ID 伪装成用户,达到攻击的目的 。
常见的预防会话劫持的手段比如:将会话 ID 和用户设备信息绑定在一起,当用户在其他设备上使用该会话 ID 时,就会提示被盗用风险,要求用户重新登录 。
回到顶部
四、我们能做什么?

  1. 输入值验证 。检查数值是否符合系统业务逻辑或检查字符编码,永远不要相信用户的输入,注意不要依赖客户端验证,客户端验证的目的只是为了尽早的辨识输入错误,起到提高 UI 体验的作用(客户端验证可被修改绕过) 。
  2. 输出值转义 。比如对 HTML 标签、JavaScript 进行转义处理再输出,避免存在攻击代码 。
  3. Web 应用不直接抛出异常,或谨慎输出错误提示,防止被攻击者利用 。
  4. 敏感字段,比如密码,进行加 salt 加密处理,防止被暴力破解(比如常见的 彩虹表) 。
  5. 签名认证,防止数据被篡改 。客户端设置签名,服务端校验签名是否正确 。
  6. 禁止开放重定向(Open Redirect)功能,防止被攻击者选中并用来作为钓鱼攻击的跳板 。
  7. 涉及到登录口的地方,增加图形验证码,防止爆破机器人 。
  8. 上线前将一些测试接口或后门程序删除,避免被攻击者利用 。
  9. 不要将公司代码传到公共仓库 。
原文地址:https://www.cnblogs.com/jmcui/p/13204387.html

【看看有哪些 Web 攻击技术】


推荐阅读