SQL
- stripslashes()函数过滤用户输入,然后再用mysql_real_escape_string()对用户输入进行sql语句过滤
- 参数类型绑定或强制转换intval(),关键字预处理
XSS
类型
- 反射型XSS
1 | 反射型XSS也被称为非持久性XSS,这种攻击方式把XSS的Payload写在URL中,通过浏览器直接“反射”给用户。 |
- 存储型XSS
1 | 存储型XSS又被称为持久性XSS,会把黑客输入的恶意脚本存储在服务器的数据库中。 |
- DOM Based XSS
1 | DOM Based XSS是一种利用前端代码漏洞进行攻击的攻击方式。 |
反射型和存储型xss是服务器端代码漏洞造成的,payload在响应页面中,DOM Based中,payload不在服务器发出的HTTP响应页面中,当客户端脚本运行时(渲染页面时),payload才会加载到脚本中执行
防御
- HttpOnly
1 | 使用HTTP only的cookie |
- strip_tags、htmlspecialchars
1 | 在使用htmlspecialchars()函数的时候注意第二个参数, 直接用htmlspecialchars($string) 的话, |
- HTML Purifier