gpt4 book ai didi

javascript - 怎样对付邪恶呢?在 System.Shell.execute() 之前验证用户输入;

转载 作者:行者123 更新时间:2023-11-28 10:07:19 24 4
gpt4 key购买 nike

我正在使用 Windows 小工具中的 API 来启动 URL,但我知道诸如 eval() 之类的东西的破坏力,以及最糟糕和更危险的 System.Shell.execute();

但是经过一些研究,我认为没有更好的方法在默认浏览器上启动 URL 而无需执行()。既然URL来自于用户输入,那么如何防止用户执行恶意代码呢?我的代码是安全的还是可以被利用?防止诸如 cmd.exe/c REG QUERY HKCU 等 以管理员权限启动 cmd.exe 之类的事情。

function openURL(url){

var protocol=new Array();

//Allowed protocols to execute
protocol[0]='http://';
protocol[1]='https://';
protocol[2]='ftp://';
protocol[3]='search-ms:query=';

for(var i=0;i<protocol.length;i++){
if(url.indexOf(protocol[i])==0){

System.Shell.execute(url);
break;
}
}
}
window.open(); //doesn't work (only open IE);

编辑:

允许这 2 个协议(protocol)是不安全的 file:///javascript:可以做的例子:

文件:///c:/windows/system32/ping.exe

javascript:void( window.open('http://file:///c:/windows/system32/ping.exe','','_blank') );

最佳答案

您的使用听起来像是 Google Caja 的潜在候选者。该项目试图清理来自第三方的 JavaScript,以确保您可以安全地运行。

关于javascript - 怎样对付邪恶呢?在 System.Shell.execute() 之前验证用户输入;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8055636/

24 4 0
文章推荐: css - 你如何在 IE6 中使
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com