表单提交别直接拼SQL,脚本扫到注入点,几秒拖走你整个数据库的用户表
新手写网站留言、咨询表单,直接把用户输入的内容拼进SQL插入语句,没做任何校验,上线没多久就被SQL注入,整个数据库的用户表都被拖走。表单提交防注入其实就几个基础点:第一,所有用户输入的内容,用数据库的预编译参数绑定,别直接把字符串拼进SQL,预编译会自动把单引号、注入字符转义,根本没法注入;第二,用户传的手机号、邮箱,先做格式校验,不符合格式的直接返回错误,别把乱七八糟的字符串存进数据库;第三,用户输入的内容里,特殊字符用htmlspecialchars转义,防止用户在留言里嵌JS脚本,其他用户打开的时候触发XSS攻击;第四,表单加个隐藏的蜜罐字段,用户正常看不见,脚本填了这个字段的话,直接判定是机器人,不存数据库,挡住大部分自动提交的垃圾广告。
我之前的博客留言板,没做任何校验,被脚本刷了三千条赌博留言,还差点被拖库,改完预编译和蜜罐之后,垃圾留言直接降到个位数,也再也没被注入过。很多新手觉得表单就是存个用户输入,根本不用校验,黑产的爬虫24小时扫所有带表单的站,你不做校验,分分钟被人拖库。这些都是写代码顺手就能做的,成本特别低,但是不做,出事了再救就晚了。
本站源码来源于网络收集修改或者交换,甚至可能并非原创,如遇未经考证信息需持审慎态度。若有疑问,可联系本站处理。
0