我有一个非常简单的应用程序,它允许未经身份验证的用户留下评论(也许稍后我会合并一个capatcha)。然后,应用程序将注释存储在mysql db中。我尽我最大的努力过滤掉特殊人物,但我不认为这是最好的方法。防范SQL注入攻击的最佳方法是什么?
此外,这个站点的javascript很重,所以我可能会重写一些逻辑,使其成为服务器端。我看到的主要漏洞是一个回调函数,它向服务器发送一个字符串。对此字符串进行解析,然后将其提交给db。这是一个真正的漏洞吗?如果是的话,我该如何解决呢?还有,在客户端有逻辑是一种风险吗?那里的标准是什么?
最后,如何为db实现一个简单的密码散列?我只是遵循这些的指令吗?(我问是因为我试过了,但失败了,只是想确保我在追对的兔子)
还有,我错过了什么大事吗?
发布于 2014-08-19 15:21:41
对于SQL注入,基本上是在正确的路径上。最好的建议就是不要自食其果。使用一些众所周知的语言;无论您使用哪种语言,都可能有一个库可以与适当的参数化SQL一起使用。OWASP有一篇非常好的文章,包括针对此攻击向量这里的缓解措施。
如果这个字符串从来都不是可执行的,那么它就不是一个漏洞(无论如何,我现在都能想到)。基本上,这是一个注入向量。如果字符串从未被直接使用,那么它不应该导致注入漏洞。如果这个字符串用于控制应用程序的逻辑,那么是的,这可能是漏洞,这取决于它控制什么以及攻击者对应用程序的了解有多深。
对于密码哈希理论,Thomas有一个非常好的答案这里。要点是使用已知的良好实现,无论您使用哪种语言,都可能有一个内置的方法来散列密码。只需确保您遵循链接帖子中的所有建议,例如使用哪种算法和盐的大小。
至于任何其他建议,我建议您检查OWASP前十名的优秀建议。
https://security.stackexchange.com/questions/65731
复制相似问题