我在玩node.js,express和mongoose。
为了立即启动并运行,我将Express查询字符串对象直接传递给mongoose
find函数。我很好奇的是,这种做法在实时应用中会有多危险。我知道RDBMS极易受到SQL注入的攻击。除了“清理您的输入”的好建议之外,这段代码有多邪恶:
app.get('/query', function (req, res) {
models.findDocs(req.query, function (err, docs) {
res.send(docs);
});
});
这意味着获取请求http://localhost:8080/query?name=ahsteele&status=a
只会将以下内容推送到findDocs函数中:
{
name: 'ahsteele',
status: 'a'
}
由于种种原因,这感觉很不好,但是它有多不安全?将查询参数传递给mongodb的最佳实践是什么?快递提供开箱即用的消毒服务吗?
就注入问题而言,就像SQL一样,风险明显更低……尽管理论上可以通过未知的攻击媒介来实现。
数据结构和协议是二进制的,并且由API驱动,而不是利用特定于域的语言中的转义值。基本上,您不能只是诱使解析器在末尾添加“;
db.dropCollection()”。
如果仅用于查询,则可能很好…但是我仍然提醒您使用一点验证:
另外,请记住,空查询将返回所有内容。您可能想要限制该返回值。:)
问题内容: 我需要的是将URL 的值转换成变量,然后在jQuery代码中使用它: 有谁知道如何使用JavaScript或jQuery来获取该价值? 问题答案: 这就是你所需要的:) 以下代码将返回一个包含URL参数的JavaScript对象: 例如,如果您具有URL: 此代码将返回: 您可以执行以下操作:
问题内容: 从Java脚本的路径中删除查询字符串的简便方法是什么?我已经看到了使用window.location.search的Jquery插件。我不能这样做:在我的情况下,URL是从AJAX设置的变量。 问题答案: 一个简单的方法是: 对于那些还希望在不存在querystring的情况下删除哈希(不是原始问题的一部分)的人,需要做更多的工作: 编辑 @caub(最初为@crl)建议了一个更简单的
我想它一定是在请求体。我如何发送‘更新’查询或我做错了?
我想它一定在请求的身体里。我如何发送“更新”查询或我做错了?
使用php或javascript或regex,是否有一个快速(希望是一行程序)从前一个(引用者)URL获取查询字符串? 从第二页...我想知道前面的查询字符串“One”。
问题内容: 用户可以在我的网站上使用HTML表单输入URL,因此他们可以输入以下内容:http : //www.example.com?test=123&random=abc,可以是任何内容。我需要提取某个查询参数的值,在本例中为“ test”(值123)。有没有办法做到这一点? 问题答案: 你可以用与这样的: 允许将URL分为不同的部分(方案,主机,路径,查询等);在这里,我们使用它仅获取查询(