我们希望让用户能够在我们的应用程序中执行自己创建的JavaScript代码.为此,我们需要eval用来评估代码.为了将所有安全问题降至最低(如果不是零),我们的想法是防止在代码中使用任何window或document函数.所以没有XMLHttpRequest或类似的东西.
这是代码:
function secure_eval(s) {
var ret;
(function(){
var copyXMLHttpRequest = XMLHttpRequest; // save orginal function in copy
XMLHttpRequest = undefined; // make orignal function unavailable
(function() {
var copyXMLHttpRequest; // prevent access to copy
try {
ret = eval(s)
} catch(e) {
console.log("syntax error or illegal function used");
}
}())
XMLHttpRequest = copyXMLHttpRequest; // restore original function
}())
return ret;
}
Run Code Online (Sandbox Code Playgroud)
其工作原理如下:
secure_eval('new XMLHttpRequest()'); // ==> "illegal function used"
Run Code Online (Sandbox Code Playgroud)
现在我有几个问题:
我的linux机器上有一个特定的用户,以下命令
json='[{"date":"2016"}]' && echo ${json}
Run Code Online (Sandbox Code Playgroud)
输出1而不是[{"date":"2016"}].
我的机器上的所有其他用户都能正常工作.当我将命令更改为(省略1)
json='[{"date":"206"}]' && echo ${json}
Run Code Online (Sandbox Code Playgroud)
它的工作正确.
我正在拼命寻找导致这种效果的用户的配置差异.但说实话,我不知道.
那里有任何提示吗?
在我获得28233个请求后,对localhost(Apache)做了很多http.get请求EADDRNOTAVAIL.
坏了的时候:
EADDRNOTAVAIL)而这10秒钟
curl http://localhost (Apache没有错误,它仍然像魅力一样工作)www.google.com(该错误只影响对localhost的请求)10秒后
这是代码:
var http = require( "http");
function httpRequest( callback ) {
var options = {
host: 'localhost',
port: 80,
path: ''
},
data = "";
http.get(options, function(resp){
resp.on('data', function( chunk ){
data += chunk;
}).on("end", function() {
callback( null, data );
});
}).on("error", function(e){
callback( e );
});
}
function …Run Code Online (Sandbox Code Playgroud) 我遇到了一个非常奇怪的问题。我正在导入一些大的 xml 文件并将它们存储到 mongoDB 中。该算法是一个典型的异步循环:
doLoop = function( it, callback_loop ) {
if( it < no_of_items ) {
storeToMongo( ..., function( err, result ) {
...
doLoop( it+1, callback_loop );
});
} else {
callback_loop();
}
};
doLoop( 0, function() {
...
});
Run Code Online (Sandbox Code Playgroud)
现在(代码中突然没有任何显着变化)我在执行循环时收到以下错误:
events.js:72
throw er; // Unhandled 'error' event
^
Error: connect EADDRNOTAVAIL
at errnoException (net.js:901:11)
at connect (net.js:764:19)
at net.js:842:9
at dns.js:72:18
at process._tickCallback (node.js:415:13)
Run Code Online (Sandbox Code Playgroud)
大约一分钟后发生错误。在此期间处理的项目数量始终相同,但不完全相同。
我试图找出connect/net导致错误的原因,但我迷路了。我的代码中没有套接字连接。我有一个到 redis 的连接,但是没关系 这是 mongoDB 连接吗?但是为什么会突然消失呢?
唯一有助于运行整个循环的是在 mongo-callback 中执行递归循环调用,如下所示: …
我是一个boost用作c ++库的项目的一部分.现在我们要使用SMTP/POP3/SSL/HTTP/HTTPS.我在中检测到了几个拟合类和函数Poco::Net
我找不到任何相同的东西boost::asio.在我做出最终决定之前,我想询问社区,如果我是对的,或者是否有类似的东西boost......
我们的 ssl 网站https://www.redmedical.de无法在 IE11 中显示(dnserror.html - 页面无法显示)。所有(所有!)其他浏览器都可以!
我们的网络服务器是一个带有默认密码设置的 node.js 应用程序。证书已增强且有效(正如您在 Chrome、FF、Safari、Opera 中看到的那样)
任何提示这里发生了什么?我试图更改密码设置但没有成功。网络中的所有提示都是针对浏览器设置的,尽管它们都不起作用,但必须在服务器端有解决方案。我认为人们不会更改我们网站的浏览器设置...
谢谢你的帮助
我想在加载(!)之前更改商店的代理。这种情况下的具体问题是我没有找到合适的时机,何时加载。
详细:
我通过创建 EXTJS4 架构定义的视图、控制器、模型和存储来创建 MVC 模型。该视图是一个网格面板。它在自己的定义语句中定义商店:
Ext.define('P.view.MyView' ,{
extend: 'Ext.grid.Panel',
alias : 'widget.MyView',
...
store: 'MyStore',
...
}
Run Code Online (Sandbox Code Playgroud)
当我使用“autoload:true”加载商店时,一切正常,但当然代理是静态的,如代码中所定义。当我不使用“自动加载”并尝试设置“extraParams”并在我的视图的“initComponent”中加载商店时,例如:
initComponent: function() {
...
this.store.load();
....
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:对象“MyStore”没有方法“加载”。
我该怎么做?
在开始大喊"不要使用具有异步功能的for循环!"之前 我要指出,我不知道如何使用异步调用函数在回调中的下一个迭代循环编程.
但是,如果我对回调感兴趣或者只在前一个完成时处理一次迭代.在我的例子中,我从xml文件导入大量记录并将它们写入mongoDB.对我的"写"功能的正常调用将是这样的:
asyncWrite( record, function(err, result) {
...
});
Run Code Online (Sandbox Code Playgroud)
现在正如我所说的那样,我对回调不感兴趣(不会发生错误!)也不会在串行进程中感兴趣.所以我使用了for循环并省略了回调:
for( i=0; i<max; i+=1) {
asyncWrite( record_arr[i] );
}
Run Code Online (Sandbox Code Playgroud)
对于小巧,max这完美无缺.但随着max变大(> 100.000),我最终得到了"内存不足"的错误.防止这种情况的唯一方法是转回"正常"异步循环(来自回调内的递归函数调用).
还有其他想法吗?
当我执行这个mongoose查询
FinancedProject.find({_id:{$ne:fb.financedProjects.financedProjectId}).exec( callback);
Run Code Online (Sandbox Code Playgroud)
其中fb是这样的对象
{
_id: ObjectId("54das4da9dsa9d4ad4a9");
name: "some",
financedProjects: [
{registry:"147", financedProjectId:ObjectId("13da4sd4sa48da4dsa")},
{registry:"189", financedProjectId:ObjectId("5d5asd5a4sd5ada5sd")}
]
{
Run Code Online (Sandbox Code Playgroud)
结果是未定义的,当我在mongoshell中执行它时,结果是预期的
node.js ×5
javascript ×2
mongodb ×2
asynchronous ×1
bash ×1
boost-asio ×1
eval ×1
extjs ×1
extjs4 ×1
html ×1
httprequest ×1
https ×1
linux ×1
mongoose ×1
proxy ×1
ssl ×1