常见web攻击的加固方法

0x01 XSS
1.过滤特殊字符(XSS Filter)
过滤恶意标签+属性
(1)href伪协议

<a href=javascript:('/a/')>test</a>

(2)HTML新增标签

<math><maction xlink:href=><embed src=>

(3)利用DataUrl协议

<a href="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTs8L3NjcmlwdD4=">

2.使用实体化编码
(1)HTML编码

编码前	编码后
&		&amp
<		&lt;
>		&gt;&quot;&#x27; &apos;
/		&#x2F;

(2)Javascript编码

编码前	编码后
‘		\’;
“		\”;
\		\\;
/		\/;

3.Http Only
PHP下通过修改php.ini的session.cookie_httponly=true

0x02 CSRF
1.添加中间环节
(1)添加验证过程
在执行关键操作的时候,让用户进行二次确认或重新输入一次密码。
(2)添加验证码
2.对请求进行校验
(1)referer
(2)csrf token
添加一个有较强随机性,一次性的token进行校验。

0x03 SSRF
1.双向过滤用户端参数
黑名单限制如file、gopher等协议。
2.网络限制
对服务器能访问的内网地址及端口进行最小化限制。

0x04 SQL
1.参数过滤或编码
select、union、order by等sql查询函数。
‘、“、;、&等特殊符号。
2.预编译与参数绑定
(1)在客户端进行预编译和参数绑定
(2)在服务端进行预编译(存储过程),在客户端进行参数绑定
当绑定的参数是可选的字段时,例如表名称、列名称、排序方式等,而非用户输入的内容,是不可以使用参数绑定的。
3.白名单
对不可做参数绑定的,可限制输入内容为预先设置好的几个值,如果不是就返回错误。
ps:宽字节注入修复:1.将mysql_set_charset设置为gbk编码;2.character_set_client 设置为binary(二进制)。

0x05 文件上传
1.文件类型检测
(1)文件扩展名
推荐使用白名单方式。
(2)文件MIME类型
通过改Content-Type非常容易绕过。
2.文件内容检测
(1)文件头检测
图片马可绕过。
(2)图像二次渲染
通过对上传的图片进行二次渲染,调整大小,然后再采集图片输出为文件。
3.文件解析攻击
(1).htaccess
<FilesMatch “jpg”>SetHandler application/x-httpd-php#将jpg后缀的文件解析为php
仅对当前目录设置htaccess,不对网站下所有文件夹做设置。
(2)apache
a.php.txt.jpg->a.php
升级apache版本
(3)iis
a.asp;.jpg->a.asp
升级iis版本
(4)php
nginx,iis7.0/7.5
a.jpg/b.php->a.php
升级php版本

0x06 文件包含攻击
1.检测被包含文件的后缀
对包含的文件后缀进行黑白名单校验。
2.检测被包含文件的目录
利用配置文件中对用户可访问的目录进行限制。php open_base_dir
3.升级PHP版本
all_url_include=off;

0x07 命令执行攻击
1.PHP环境下的命令执行
在php.ini中通过设置disable_functions()禁用exec()、system()、shell_exec()等危险函数。
2.框架类的命令执行
如struts2,thinkphp,建议升级版本。
(struts2目前受影响是2.3-2.3.24,2.5-2.5.16,安全一些的是2.3.35或2.5.17以上。18年给的漏洞修复建议,仅供参考。)
3.中间件类的命令执行
如Weblogic、Jboss,及时打补丁。

0x08 明文传输
对传输的用户名、密码进行加密。(MD5)

0x09 暴力破解
1.添加强度较高的验证码,不易被破解。
2.修改密码设置规则,提高用户的密码强度。
3.同一账号登陆次数锁定,生成锁定日志。
4.定期排查弱口令。

0x10 水平越权&垂直越权
在参数可控的情况下,通过session验证个人身份是否与用户修改后的代表身份的信息匹配,若不匹配禁止访问。

0x11 弱验证码
1.更改验证码的类型,由数字转为点击或拖动类型的图形验证码。
2.设置验证码的刷新频率,保证每一次提交后验证码刷新一次。
3.限制验证码的有效期,半分钟或一分钟后自动刷新。

0x12 敏感信息泄露
屏蔽网站后台、中间件后台、网站或程序报错信息,删除备份文件、测试文件。
网站的Banner(服务器版本、端口、开发语言)信息泄露,参考:
https://blog.csdn.net/hibari_18/article/details/104904387

0x13 XML注入、XPATH注入、LDAP注入、JPA注入
1.使用标准的xml解析库进行xml文件的写操作。
2.对插入的数据进行编码、过滤。
3.JPA可通过参数绑定的方式防止注入的产生。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值