很多老板或刚入行的开发问我:“我买了WAF,为什么还被挂马?”“我用了框架自带的转义,怎么还是中招?”
说句得罪人的大实话:你所谓的“安全”,可能只是给黑客递了把更锋利的刀。
今天不聊虚的理论,只聊干货。关于网站做xss过滤,市面上90%的方案都是半吊子。
先说个真事。去年有个做电商的客户,上线前测了三轮,都说没问题。结果上线第三天,后台被注入了恶意脚本。黑客利用的是他们搜索框的一个逻辑漏洞,没做严格的上下文检测。
那几天客服被打爆,用户数据差点泄露。老板急得跳脚,找我救火。
我打开代码一看,好家伙。前端用了Vue,默认转义了。但后端在返回JSON数据时,为了省事,直接把用户输入的HTML标签保留了下来,美其名曰“支持富文本”。
这就是典型的“半桶水”做法。
网站做xss过滤,核心不是“过滤”,而是“隔离”。
很多同行喜欢推荐你装个插件,或者用个正则表达式把