我没有专门学过web安全方面的知识,但是作为开发者,基本的安全意识还是要有的。
说说之前遇到的web中的两个安全问题,一是Sql注入,而是Xss攻击。
Sql注入:就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
原理
解决方案:参数化查询,我这里使用的java,所以java提供了PreparedStatement来实现参数化查询,而且使用参数话查询的方式,可以很好的避免sql注入,是一个很好的解决方案。
Xss攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。
原理
XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。
解决方案:Xss攻击主要目标是前台页面的表单和地址,所以前台对页面进行表单的js验证输入,后台java配置filter过滤器,对某些字符进行过滤