加入收藏 | 设为首页 | 会员中心 | 我要投稿 通化站长网 (https://www.0435zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 策划 > 正文

学习手册:窥探Web前端黑客技术

发布时间:2019-04-09 01:44:50 所属栏目:策划 来源:绿盟科技
导读:安全之路任重而道远,前端安全是众多安全中的一个分支。随着互联网的发达,各种WEB应用也变得越来越复杂,满足了用户的各种需求,但是随之而来的就是各种网络安全的问题。 一、安全关键词 先了解几个定义:域、脚本、授权、读写、资源、同源策略、信任、社

点击劫持的危害在于,攻击利用了受害者的用户身份,在其不知情的情况下进行一些操作。如果只是迫使用户关注某个账号的话,看上去仿佛还可以承受,但是如果是删除某个重要文件记录,或者窃取敏感信息,那么造成的危害可就难以承受了。

三、防御思路

在大局势下,安全总是相对的,不安全却是绝对的。

1. 关于Cookie防御

最佳的防御应该是优化网站本身,设置复杂而周全的规则策略使攻击者不能获取到有效信息,从而来堵住cookie漏洞,同时也经常给站点打补丁,进行分析。

  • 清理cookie;
  • 不在 Cookies 中存放敏感信息;
  • 严格保护数据库不泄露,在数据库足够安全的情况下,即使产生cookie注入,cookie 注入的危害也会被极大的减小;
  • 严格堵住脚本系统中可能提交盗取Cookies的代码,把好验证关;
  • 使用Session和Cookies双重验证;
  • 加防篡改验证码,加个登录随机验证码;
  • 运用HSTS平台,对于特定的域名强制进行HTTPS访问;

2. 关于Flash防御

Flash的安全性在Flash的开发过程中很少人会注意到,除了Flash引发的xss问题,Flash引发的csrf问题,代码很简单,也很好利用的,重要是隐藏性比较好,还有一些在Flash游戏中的破解问题等。在Flash编程中如果需要通过参数接收外部传入的数据,一定要对数据进行严格的检查,这样才能保证其安全性。

3. 关于钓鱼防御

最好的防御措施之一就是尽可能地实施双因子身份认证。如果登录证书被盗用,攻击者在利用这些证书之前还需要第二个认证因素。这种措施无法阻止攻击者窃取登录凭证,但是能够有效地阻止攻击者成功利用这些获取到的凭证。

另一个重要的防御措施就是对用户进行安全培训。对用户进行培训能够加深用户对网络钓鱼技能的认知,以便识别钓鱼行为。此外,还能使安全团队从用户行为(可能被技术人员认为是理所当然的行为)中学习到有价值的见解。

例如,用户可能会习惯假设组织已经对电子邮件进行了过滤,以防止任何恶意邮件通过,但是这种假设是错误的。无论多么高质量的电子邮件保护措施,都可能会无法避免地“放过”一些恶意电子邮件。对于恶意网站也是如此。用户可能会理所当然地认为有保护措施已经对恶意网站进行了过滤,但是即便是最好的网页过滤工具也可能会漏过少数的恶意网站。一旦用户能够了解到,任何安全工具无法完全保障百分百地阻止所有的恶意电子邮件或站点,他们才有可能形成一种高度的责任感,来帮助维护组织的网络安全。此外,用户能够了解攻击者可以轻松地建立一个钓鱼网站也是非常重要的。

4. 关于XSS防御

防御XSS最佳的做法就是对数据进行严格的输出编码,使得攻击者提供的数据不再被浏览器认为是脚本而被误执行。例如<script>在进行HTML编码后变成了&lt;script&gt,而这段数据就会被浏览器认为只是一段普通的字符串,而不会被当做脚本执行了。其他的防御措施,例如设置CSP HTTP Header、输入验证、开启浏览器XSS防御等等都是可选项,原因在于这些措施都存在被绕过的可能,并不能完全保证能防御XSS攻击。不过它们和输出编码却可以共同协作实施纵深防御策略。

5. 关于CSRF防御

CSRF攻击是攻击者利用用户的身份操作用户帐户的一种攻击方式,通常使用Anti CSRF Token来防御CSRF攻击,同时要注意Token的保密性和随机性。

  • 可以使用对cookie的限制,进行解决CSRF攻击的问题,它可以让其他的网站无法拿到自己的cookie。主要是通过设置 sameSite: ‘strict’ 的方式进行。缺点:目前这样的方式,有那个兼容性的问题。
  • 可以使用图形验证码的方式,进行对我们的接口进行验证,原理就是每次提交我们的接口的时候,我们还要提交自己的图形验证码进行验证。缺点:就是用户体验不够好!
  • 使用token的方式,也就是说,每次我们进行接口请求的时候,我们要在自己的数据请求中携带一个token,然后服务端通过读取token,然后验证这个token。最终我们能够保证接口的安全性。缺点:在前后端分离的情况下,还是无法实时的更新。
  • 使用referer的方式,进行验证你的接口请求地址的来源,如果这个来源是自己的客户端的地址,那么就可以继续操作相应的东西,如果这个来源不是自己的客户端的请求,直接拦截住。

6. 关于劫持防御

有多种防御措施都可以防止页面遭到点击劫持攻击,例如Frame Breaking方案。一个推荐的防御方案是,使用X-Frame-Options:DENY这个HTTP Header来明确的告知浏览器,不要把当前HTTP响应中的内容在HTML Frame中显示出来。

开发人员关注:

  • 开发时要提防用户产生的内容,要对用户输入的信息进行层层检测;
  • 要注意对用户的输出内容进行过滤(进行转义等);
  • 重要的内容记得要加密传输(无论是利用https也好,自己加密也好);
  • get请求与post请求,要严格遵守规范,不要混用,不要将一些危险的提交使用jsonp完成;
  • 对于URL上携带的信息,要谨慎使用;
  • 心中时刻记着,网站哪里可能有危险,加强安全意识。

(编辑:通化站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读