安全加固安全加固

Web安全加固


一、针对于SQL注入的防范 

问题原因:当项目中登录模块的SQL查询相关的语句如下图所示为拼接语句时,在用户登录界面用户名处输入万能密码admin' or 1=1 --',密码处输入任意字符,点击登录,一般可以绕过后台登录系统。admin' or 1=1 --'放到SQL语句中会使user_name ='admin' or 1=1成为永真语句,并且--会注释掉语句后面的密码部分,从而实现绕过后台登录。

方法:使用PreparedStatement方法完成SQL语句的执行,该方法要求在执行SQL语句之前,必须告诉JDBC哪些值作为输入参数,解决了普通Statement方法的注入问题,极大的提高了SQL语句执行的安全性。sql注入攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql语句以及进行其他方式的攻击,动态生成Sql语句时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。对于Java数据库连接JDBC而言,SQL注入攻击只对Statement有效,对PreparedStatement是无效的,这是因为PreparedStatement方法要求在执行SQL语句之前,必须告诉JDBC哪些值作为输入参数,不允许在不同的插入时间改变查询的逻辑结构,解决了普通Statement方法的注入问题,极大的提高了SQL语句执行的安全性。

二、XSS跨站防范

问题原因:在HTML中,某些字符是预留的。例如小于号 < 和大于号 > ,浏览器在解析他们时会误认为它们是标签。如果希望正确地显示预留字符,我们必须在HTML源代码中使用字符实体(character entities)。在项目中可以提交代码的部分可以成为恶意用户进行攻击的地方。

常见字符的实体转换表

显示结果

描述

实体名称

实体编号

 

空格

 

 

<

小于号

<

<

>

大于号

>

>

&

和号

&

&

"

引号

"

"

'

撇号

' (IE不支持)

'

 

方法:在项目中编写代码,在用户提交留言和评论信息时将<和>分别替换为&lt;&gt。

三、上传攻击防范

问题原因:在网站中寻找能够上传文件的位置,尝试上传菜刀马。任意文件的上传可能会给恶意用户留下上传木马文件的机会,这将会造成项目中的重要信息数据泄露。

方法:在项目中可以上传文件的位置多增加一步对上传文件类型的限制,可在一定程度上防止被上传恶意文件。

 

                                                                                                                                                                                                                          

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值