1、SQL注入,使用PreparedStatement时,是可以在SQL语句中,对值所在的位置使用?这种占位符,使用占位符之后,实际的值,可以通过另外一份放在数组中的参数来代表。此时PreparedStatement会对值做特殊的处理,往往特殊处理后,就会导致不法分子的恶意注入的SQL代码失效。修改登录模块的SQL查询相关语句如下所示,再次运行项目,使用万能密码admin' or 1=1 --'进行登录。
2、跨站脚本攻击(Cross-site scripting,XSS),攻击者利用漏洞注入恶意的客户端代码,当被攻击者登陆网站时就会自动运行这些恶意代码,从而,攻击者恶意突破网站的访问权限,冒充受害者。防范措施:在用户提交时,对提交的内容进行过滤,直接不让用户提交恶意代码到数据库。在写入数据库前、或者是在将查到的数据放到网页上前,将’<’、’>'等利用html中的实体符号进行转换。
3、文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器并执行。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。这种攻击方式是最为直接和有效的,部分文件上传漏洞的利用技术门槛非常的低,对于攻击者来说很容易实施。根据攻击原理,可进行针对性的防范:利用WEB服务器提供的文件上传功能(例如本意是让用户上传头像图片),从浏览器端上载一个木马文件,例如PHP文件;探寻确定上传木马在WEB服务器上的存储位置;利用GET或POST语句访问WEB服务器上的木马文件,触发其执行,从而获得更高权限或更多非公开信息。