gpt4 book ai didi

javascript - 使用meteor webApp避免xss的最佳实践?

转载 作者:行者123 更新时间:2023-12-01 01:00:29 25 4
gpt4 key购买 nike

我正在使用 webapp 接受将项目添加到我的 mongoDB 实例的请求。

这太棒了,因为它允许与其他服务兼容。

我目前有两个问题:

  1. 我对所有查询元素执行检查。不幸的是,无论我如何检查它们,它们似乎总是作为字符串传入,有没有办法接受 int 类型等。

  2. 除了使用 check 来验证 json 查询的结构之外,我还可以使用什么来避免任何跨站注入(inject)? (XSS)

这对我来说至关重要,因为此查询中的项目将传递到我的数据库中

如上所述,当结构不完美时,我确实使用检查并抛出错误,我确实意识到仅仅因为结构正确并不意味着内容不能用于进行 XSS 攻击

对于如下请求

http://localhost:3000/request?token=1234567890&id=id123&timeStamp=234234&item=uy3242&anotherItem=111222

WebApp.connectHandlers.use('/request', (req, res, next) => {

//check validity of the query
try{
var matchTest = check(req.query, {
token : String,
id : String,
timeStamp : String,
item : String,
anotherItem : String
});
}catch (err){
res.writeHead(406);
res.end(`request failed check`);
}

//check validity of the token
try{
//is it a good idea to use req.query.token? or should I stringify it first?
validateToken(req.query.token);
}
catch(err) {
res.writeHead(401);
res.end(`Invalid Token`);
}

//finally save information needed to DB
myCollectionName.insert(req.query);

res.writeHead(200);
res.end(`request Passed!`);


});

我想要实现的是一种避免xss的可靠方法,并且也许还能够执行检查来验证(例如, token )实际上是一个整数并且其中没有字母等等

最佳答案

首先你应该转义 HTML 特殊字符 < , > , " , & 。将它们替换为 &lt; , &gt; , &quot; , &amp; .

但是那个might not be enough 。另请检查OWASP XSS cheat sheet潜在威胁。

您可以做的另一件伟大的事情是实现 CSP header 来阻止所有未经您在其中设置的内容批准的内容。 GoogleMozilla指导。还有XSS-Protection标题可以有一些帮助。

你的问题的第二部分..为了验证输入,你最有可能使用正则表达式。

关于javascript - 使用meteor webApp避免xss的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56125507/

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