介绍几种前端安全攻击方式,以及预防的方法:
1. XSS
XSS(Cross Site Scripting)跨站脚本,XSS的原理也就是往HTML中注入脚本,HTML指定了脚本标记。
XSS攻击分成两类
1. 来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句。
2. 来自外部的攻击,主要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。如当我们要渗透一个站点,我们自己构造一个有跨站漏洞的网页,然后构造跨站语句,通过结合其它技术,如社会工程学等,欺骗目标服务器的管理员打开。
预防:积极过滤用户输入,永远不要信任用户
2.CSRF
CSRF(Cross-site request forgery)跨站请求伪造,也被称成为“one click attack”或者“session riding”,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。
尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。
具体参考这篇文章:http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
预防:使用http的post请求来执行所有重要操作,或者使用一个动态生成令牌:一个隐藏字段分配一个动态值,这个值也会被添加到用户会话信息中,服务器端接收到客户端请求后,服务器检查POST的隐藏变量和用户会话信息得到的是否相同。
3. SQL注入攻击
SQL注入攻击是黑客对数据库进行攻击的常用手段之一。相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
参考:http://baike.baidu.com/view/983303.htm
预防:保存到数据库前,对用户输入数据进行合法性判断
4. JavaScript劫持
参考:http://www.cnblogs.com/hyddd/archive/2009/07/02/1515768.html
5. XPath注入
XPath注入攻击是指利用XPath 解析器的松散输入和容错特性,能够在URL、表单或其它信息上附带恶意的XPath 查询代码,以获得权限信息的访问权并更改这些信息。
XPath注入攻击是针对Web服务应用新的攻击方法,它允许攻击者在事先不知道XPath查询相关知 识的情况下,通过XPath查询得到一个XML文档的完整内容。
参考:http://www.2cto.com/Article/201203/122201.html