防止sql注入和跨站脚本攻击,跨站请求伪造以及一句话木马的学习记录
以下是来自精通脚本黑客的学习记录
防止以上漏洞的最好的方式
一对用户的输入进行编码,对用户输入进行编码,然后存入数据库,取出时解码成utf-8
二对用户的输入进行过滤,过滤jscript,javascript,vbscript, <,>等等。
总结,先要转换掉<>字符让用户不能建立自己的html标记,然后防范已经有的html标记,通过过滤javascript和特殊字符&可以阻止用户修改标记的属性为script,然后通过”和空格的过滤是用户不能引发事件机制和重建其他的输入性,将用户的输入限制在一个字符串内。
下面用python写几个过滤的例子
str = ‘用户输入’ str.replace('&', "&") str.replace(':', ": ") str.replace(‘=’, "=") str.replace('<', "<") str.replace('>', ">") str.replace(' ', " ") str.replace('""', """)