我读过的最明显的漏洞是XSS,但是在开发节点应用程序时,我想知道最大的漏洞是什么以及修补这些漏洞的最佳实践。我正在使用http模块(带有节点的库存)来处理请求。这基本上是我的请求处理代码:
var server = http.createServer(function (req, res) {
var urlparse = url.parse(req.url, true);
if(urlparse.pathname == "api endpoint") {
//pass POST data into other functions and return those functions' results
} else if (urlparse.pathname == " another api endpoint") {
//and so on...
}
我的主要担心:
您从客户那里获得的所有东西都必须被视为不受信任。从他们给您的输入,到他们使用的查询字符串,到他们提交的表单数据,到他们调用的url,再到被传送的cookie,都应被视为不受信任,并且需要进行验证/清除。没有足够多的客户端验证就足够了(尽管这有助于用户体验)。无论是否使用数据库,所有内容都必须在服务器上进行验证。私有会话数据应使用Cookie ID引用保存在服务器上,而不是将数据本身传递给客户端。
此外,您在客户端上显示的所有不受您100%控制的内容也必须被视为不受信任,并且需要先进行正确的转义。您还需要使用适当的权限来保护所提供的文件,如果有人能够登录到您的服务器,则使文件更难以遭到破坏(一旦丢失了服务器,您就失去了所有东西,但至少可以做到这一点)越困难越好)。
这是很多工作,但是从好的方面来说,如果您只是学习和构建一个小型网站,您可能就不会成为大多数更老练的黑客(他们喜欢比您的服务器更大的目标)的雷达。只要您采取一些基本的预防措施,就可以使用良好的密码/ ssl适当地锁定服务器,并进行一些基本的Web强化操作,这样就可以了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句