京口新闻网

2016.8.12  星期五

前端编程开发需要了解哪些安全知识

对于程序员来说,我们不止需要开发软件还需要维护软件的安全与稳定,下面我们就通过案例分析来了解一下,前端编程开发程序员都需要了解的安全知识都有哪些。前端编程开发需要了解哪些安全知识1.使用强大的内容安全策略完善的内容安全策略(CSP)是前端应用程序安全的基石。CSP是浏览器中引入的一种标准,用于检测和缓解某些类型的代码注入攻击,包括跨站点脚本(XSS)和点击劫持。2.启用XSS保护模式如果用户输入确实注入了恶意代码,我们可以通过提供"X-XSS-Protection":"1;mode=block"头指令来指示浏览器阻止响应。尽管大多数现代浏览器默认情况下都启用了XSS保护模式,并且我们也可以使用内容安全策略来禁用内联JavaScript,但仍建议包含X-XSS-Protection头,以确保不使用内联JavaScript的旧版浏览器具有更好的安全性。3.禁用iframe嵌入以防止点击劫持攻击点击劫持是一种攻击,网站A上的用户被诱骗对网站B执行某些操作。为了实现这一点,恶意用户将网站B嵌入到一个不可见的iframe中,然后将iframe放置在网站A上毫无防备的用户的光标之下,因此当用户单击,或者更确切地说,认为他们单击了网站A上的元素时,他们实际上是单击了网站B上的某个东西。4.限制对浏览器功能和API的访问良好的安全做法的一部分是,限制对正确使用我们的网站所不需要的任何内容的访问。我们已经使用CSP应用了这个原则来限制网站可以连接的域的数量,但是它也可以应用到浏览器特性上。5.不要泄露referrer值当你点击一个链接,从你的网站导航,目的地网站将收到你的网站上后一个位置的URL在一个referrer头。该URL可能包含敏感数据和半敏感数据(例如会话令牌和用户ID),这些数据永远都不应公开。6.不要根据用户输入设置innerHTML值跨站点脚本攻击可以通过许多不同的DOMAPI进行,其中恶意代码被注入到网站中,但是常用的是innerHTML。我们永远不应基于用户未过滤的输入来设置innerHTML。用户可以直接操作的任何值——输入字段中的文本、URL中的参数或本地存储项——都应该先进行转义和清除。理想情况下,使用textContent而不是innerHTML可以完全避免生成HTML输出。如果确实需要为用户提供富文本编辑,请使用专业的三方库。7.使用UI框架诸如React,Vue和Angular之类的现代UI框架内置了良好的安全性,可以很大程度上消除XSS攻击的风险。它们自动对HTML输出进行编码,减少对XSS敏感DOMAPI的使用,并为潜在危险的方法(如dangerouslySetInnerHTML)提供明确而谨慎的名称。【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。