|
事实上,WEB应用是很脆弱的。因为这种应用的灵活性很大,用户输入的自由度也很高,所以对于WEB应用的恶意攻击也比较容易。
本文对常见的16种WEB攻击,给出了部分解决方案。
1. SQL注入(SQL Injection)
对于固定的SQL语句,一般在应用程序层不做处理,推荐添加一个包装类,把这些固定的SQL操作控制起来。
而对于动态生成的SQL语句,就需要对用户的输入进行处理,一般的处理是把【'】转换成【“】 。
如:
abc”def”ghi’jkl’mno →abc”def”ghi’’jkl’’mno
2. 跨站点脚本攻击(XSS,Cross Site Scripting)
如果用户输入,URL参数在页面上表示时,必须对特殊文字进行过滤处理。
2-1 如果用户输入和URL参数中含有下列敏感文字,则删除 之:
Script Object Embed Applet
2-2 如果用户输入和URL参数中含有下列敏感文字,则转换 之:
& → &
< → <
> → >
“ → "
‘ → '
3. 操作系统命令注入(OS Command Injection)
要尽量避免执行系统命令,如果非使用不可的话,要对以下的用户输入或者参数做处理:
| ! & ` 命令执行总要使用的字符
“ ‘ 字符串的区分字符
/ - 命令参数指定时使用的字符
“. / |