声明:本文所举的部分例子可能存在恶意性,请勿用于非法用途。
基于 Webview2 做什么?
例子 1:盗用 Cookie
Q:用户通过 Webview2 登录后,可以获取 Cookie,那么能否盗用 Webview 中的 Cookie 用于登录?
A:可以,前提是所获得的 Cookie 中的所有属性不包含 HttpOnly 属性。举个例子,通过盗用已登录用户的 Cookie,实现异地盗用身份。首先,在 Webview2 中登录后,获得语句 document.cookie
的运行结果,你就获得了登录用户的 Cookie。(注意:该过程也可能发生于恶意脚本,在网站中,注意不要执行恶意脚本,参考 cookies-and-security)
获得 Cookie 后,你打开了某个浏览器,进入该网站,然后在控制台中输入:
let cookie = "" // 窃取的 Cookie
cookie.split(";").forEach((c) => { document.cookie=c });
通过这两行代码就完成了浏览器 Cookie 的修改,刷新页面,你就发现你正以被盗者的身份登录该网站。
Q:如何防止上述过程?
A:在 Cookie 中加入 HttpOnly 属性,在服务器端进行验证。