我刚开始使用网络编程,对于在发布website.If时应该考虑到的安全防范措施感到非常不安,我计划阅读、分析和学习每个发生的安全威胁,这需要2到3年的时间才能在这个领域获得良好的知识。我从阅读OWASP guide.While的阅读中获得了一些关于安全问题的知识,我意识到每个安全问题都是由于对server.What输入的内容验证很差--我的意思是,如果我设法在服务器端编写代码,在每个server.What请求上完美地部署内容验证(POST,GET..etc ),过滤正确的安全攻击并阻止不想要的或可疑的攻击,我能摆脱所有这些安全攻击和破坏吗?
发布于 2016-12-21 16:38:13
不,你永远不会完全免疫你自己的所有潜在的安全攻击和破坏。验证输入是保护资产的一个重要步骤,尽管它减少了SQL注入和XSS的可能性。再读一遍OWASP前十名--这是个很好的开始。
试着问更多关于攻击、对策和防御的具体问题,你会得到更多有用和具体的答复。
发布于 2016-12-21 16:38:59
是的,正确地执行内容验证将为健壮的安全方法奠定基础。OWASP前10名是建立基线安全态势的指南。
不,内容验证不是防止所有攻击和破坏的金科玉律。虽然建立一个可靠的内容验证实现将大大减少成功攻击的次数,但“有不止一种方法可以剥去一只猫的皮”。
您还必须考虑到违约可能造成的风险和影响。一个个人网站可能没有太大的影响,一个漏洞可以通过简单的恢复从备份解决。一个处理财务或健康信息的网站可能因一次入侵而产生重大影响。
作为一个新的web开发人员,你不一定需要熟悉所有的攻击和防御方法,但是你至少应该熟悉如何正确保护你的网站的基本知识。随着时间的推移,你应该继续发展你的防御机制的知识。
如果学习如何抵御攻击的想法让你心烦意乱,你可能会陷入一个错误的领域。在当今时代,安全最佳实践的知识变得越来越重要。
发布于 2016-12-22 10:20:22
我不认为这是一个很好的方法,深入“内容验证”,以保护您的网站。相反,您应该使用从一开始就避免许多风险的框架和技术。当谈到SQL注入时,不要使用任何内容验证,而是使用准备好的语句。它们存在于Java中,它们存在于PHP中。永远不要通过字符串连接来自己编译语句。就这样。
然后,您必须考虑XSS和跨站点请求伪造。考虑哪些用户输入片段被反射回您对浏览器的http响应中是一个好主意。不过,与其自己编写解析用户输入的函数(您很可能会遗漏一些东西),不如编写html--对输出进行编码,或者使用为您编写输出的框架。理解最常见的XSS攻击向量并不是个坏主意。你应该知道,不仅注射alert(‘某物’)</警觉>,而且还有类似onload=的东西.这避免了字符<和>。</div><div>检查CSRF的OWASP页面。让CSRF变得更难的一个相对简单的方法是,在处理请求时检查推荐人,如果推荐人不是您自己的站点,则拒绝。</div><div>也就是说,当您知道输入具有精确定义的格式时,输入验证肯定是必须的。一个很好的例子就是约会。确保用户确实输入了一个日期。无论安全性如何,这都将提高代码的质量。</div><div>还有几件事:</div><ul><li><div>不要使用代码执行。没有伊娃,执政官,不管你的语言叫什么</div></li><li><div>不要使用序列化。永远不要反序列化客户端发送给您的对象。</div></li></ul>
https://security.stackexchange.com/questions/146001
复制相似问题