|
Android开发里用WebView加载HTML,的L的洞解最阴险的击漏决坑就是innerHTML直接塞用户输入。你以为自己写了个评论展示页,的L的洞解结果用户粘贴一段 ,击漏决整个页面就炸了。的L的洞解这不是击漏决危言耸听,我去年接手的的L的洞解一个项目就因为这个被安全团队打回重做——攻击者甚至不需要登录,只要在搜索框里输入恶意代码,击漏决就能盗走其他用户的的L的洞解会话Cookie。 问题的击漏决根源在于WebView默认不拦截JavaScript执行。很多人以为Android的的L的洞解WebView比浏览器安全,毕竟它是击漏决个“受控环境”。但事实是的L的洞解,只要你调用了loadDataWithBaseURL或者loadUrl,击漏决并且页面里用了innerHTML拼接字符串,的L的洞解那和PC浏览器上裸奔没区别。更糟的是,Android WebView的XSS还能直接调用Java接口——如果开发者图省事加了addJavascriptInterface,那恶意脚本就能直接操作本地文件甚至发短信。这不是理论漏洞,是真实发生过的攻击路径。 解决思路得从两头堵。第一道防线是输入过滤,但别用正则黑名单。黑名单永远有漏网之鱼,今天过滤了script标签,明天攻击者就用svg或者math命名空间绕过。正确做法是白名单净化——用Jsoup这类库解析HTML,只保留允许的标签和属性,其余全部剥掉。比如评论只允许加粗和链接,那就只保留b、a、href,其他一律丢弃。我见过最蠢的写法是replace掉" |