gpt4 book ai didi

javascript - javascript(或浏览器扩展)如何检测受限功能的使用?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:27:35 25 4
gpt4 key购买 nike

我正在开发一个脚本扩展,类似于 Greasemonkey 或 Chrome 的内容脚本引擎。此扩展将允许脚本编写者执行非常危险的操作,例如访问本地文件。

如果我向公众发布此扩展,我希望它能够在脚本将使用“危险”功能时警告新手用户。我希望这个警告尽可能难以规避。

例如,扩展可以搜索 protected 字符串GM_openSQL_Connection并警告用户——可能像这样:
Bad script warning

假设基础网页永远无法访问GM_openSQL_Connection感谢沙盒机制。同样,没有 <script>节点将能够。

但是,脚本作者仍然可以从上方绕过简单的搜索,例如:

eval (decodeURI ("GM_op%65nSQL_Connection (...);") )


所以问题是邪恶的脚本编写者可以通过哪些方式来欺骗对受限函数使用的检查,我该如何防止这种恶作剧?


注意:错误警告可能没问题。例如,如果脚本作者在其他静态字符串中使用文本“GM_openSQL_Connection”,那么他将不得不忍受(错误的)警告。

最佳答案

What are the ways in which an evil scripter can fool the check for restricted function us[age]?

有上千种组合,例如,与eval()new Function()String.fromCharCode()的组合和 decodeURI()(就像在您的示例中一样)。

How might I prevent such mischief?

你能重载/隐藏特定的函数/对象/变量吗?

GM_openSQL_Connection = function() {
warnUser();
};

要在扩展试图访问禁止的函数或变量时设置标志,只需设置一个 var isDangerous = false 如果禁止的函数被设置为 true调用或访问/修改禁止属性上的 get/set

如果 isDangeroustrue,则您可以将该扩展标记为可能具有危险的函数/属性调用/访问。

关于javascript - javascript(或浏览器扩展)如何检测受限功能的使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9579513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com