Web 攻防之业务安全:输入 / 输出模块测试.
业务安全是指保护业务系统免受安全威胁的措施或手段。广义的业务安全应包括业务运行的软硬件平台(操作系统、数据库,中间件等)、业务系统自身(软件或设备)、业务所提供的服务安全;狭义的业务安全指业务系统自有的软件与服务的安全。
免责声明:
严禁利用本文章中所提到的技术进行非法攻击,否则后果自负,上传者不承担任何责任。
输入 / 输出模块测试:
测试原理和方法:
输入 / 输出模块可能存在:SQL注入,XSS,命令执行等漏洞.
测试过程:
(1)SQL注入漏洞测试:https://tianyuk.blog.csdn.net/article/details/122903983
(2)XSS漏洞测试:① https://tianyuk.blog.csdn.net/article/details/123396714
② https://tianyuk.blog.csdn.net/article/details/123555545
(3)命令执行漏洞测试:https://tianyuk.blog.csdn.net/article/details/122916853
防御方法建议:
(1)SQL注入漏洞防御方法建议:
① 限制数据类型
② 正则表达式匹配传入参数
③ 函数过滤转义
④ 预编译语句
(2)XSS漏洞防御方法建议:
**① ** 可在 cookie 中设置 httponly.(浏览器禁止页面的js访问带有httponly属性的cookie)
② 输出检查.(编码,转义,常用编码:html编码,js编码,16进制等)
③ xss filter.(检查输入,设置白名单方式)
④ 针对不同位置的输出,使用不同的处理方式.
⑤ 后台可能存在过滤措施,构造的 script 可能会被过滤掉,而无法生效或者环境限制了执行.(浏览器)
⑥ 处理富文本 **.header **中使用 content-Sencurity-Policy 字段,规定请求 js 的域名白名单.(CSP策略)
(3)命令执行漏洞防御方法建议:
① 对传入的命令做一个严格的过滤.
② 尽可能不要使用外部执行命令
③ 尽可能使用 escapeshellarg 函数来处理传入的命令参数.
版权归原作者 半个西瓜. 所有, 如有侵权,请联系我们删除。