Web安全问题

XSS跨域攻击

XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性。其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如,盗取用户Cookie、破坏页面结构、重定向到其它网站等。


XSS攻击分为DOM XSS攻击和Stored XSS攻击。


DOM XSS攻击是一种基于网页DOM结构的攻击,该攻击特点是中招的人是少数人。一个简单的例子就是web页面从url中获取参数值,然后直接显示在页面上。如果参数sContent包含恶意代码。最简单的例sContent=<script>alert(‘123’)</script>,那么页面就会出现显字符串123的弹窗。


StoredXSS攻击原理与Dom XSS攻击类似,只不过恶意代码被植入数据库。如果有一个web页面,需要每次读取数据库中含有恶意代码<script>alert(‘123’)</script>sContent字段并在页面上展示,那么所有访问该页面的用户都会被出现字符串123的弹窗。

 

解决方法

前、后端对特殊字符转义,如"< >"

HttpOnly属性:Cookie添加HttpOnly属性,使得攻击者无法通过JavaScript脚本窃取Cookie




恶意文件上传

解决方法

校验上传文件的类型,限定上传文件格式。

限制存放文件目录的权限。




路径遍历

解决方法

JsHTML等资源文件独立部署。




SQL注入

指攻击者在HTTP请求中注入恶意SQL命令,使得应用服务器调用请求构造SQL时和恶意SQL命令一起构造,并在数据库执行。

 

解决方法

通过正则表达式过滤"drop table"等可能注入的SQL。

使用预编译绑定参数是最好的手段,恶意SQL只会被当成SQL参数而不是命令。




CSRF攻击(身份伪造)

攻击者通过跨站请求,以合法用户的身份进行非法操作,如转账交易等利用用户浏览器Cookie或服务器Session策略,盗取用户身份(以你的身份干坏事)。

 

解决方法

表单TokenCSRF伪造用户请求,需构造用户请求的所有参数,表单Token通过在请求参数中增加一个随机数Token来阻止,每次响应页面Token均不同。
验证码:即需手动输入验证码,但这是一个不好的用户体验。

Referer源检查:Http请求头的Referer域中记录着请求来源,通过检查请求来源判断请求是否合法。

http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html





错误回显

Web服务器异常时,直接把异常堆栈信息输出给客户端浏览器。解决方法,将错误转到专门错误页面即可。

 

 

 

 如果觉得本文有帮助,欢迎捐助以作鼓励,谢谢

Web安全问题