我正在一个托管公司的网站上工作,用PHP和MySQL。
我熟悉SQL注入和XXS,我知道如何编码以便不会发生这些。但是,我仍计划测试网站的漏洞。
现在,我对Web开发有了新的认识,我知道有很多关于网站安全的内容。
答案 0 :(得分:2)
要记住的事情很好:
查看PDO
以获取数据库,而不是mysql
或mysqli
。
(PDO是一个包装器,它简化了不同类型数据库之间的差异 - 但也大大简化了安全性。)
PDO准备好的语句使构建查询变得更容易100x, AND 使它们几乎可以防止SQL注入,只要您总是准备语句(使用PDO也很容易愚蠢。
在15分钟内学习如何在其他两个mysql选项中使用PDO是非常值得的。
虽然这可能会使您免于危及数据库安全,但它并不能保护您免受可能存储在数据库中的数据的影响,以便以后提供给用户。
在这方面:
include $_GET["page"];
)JavaScript - 我的宝贝:
通常,将用户信息保留在cookie和URL字符串之外,并尽可能多地保留在JS闭包,POST请求中,然后尽可能在服务器端的用户会话中。
答案 1 :(得分:0)
一个很好的阅读资源是OWASP,它有一个庞大的Wiki风格的网站,其中包含有关网络安全的信息。它可能会非常繁重,因为那里有很多,但它是一个非常好的资源,可以保存在你的书签中。
另一个您可能会觉得有用的网站是PHP The Right Way,旨在帮助您更安全地编写PHP代码并使用最佳实践。这个网站还很新,但已经有了一些很好的提示。
我对您的代码的建议:您可以做的唯一最好的事情就是使用一个不错的PHP框架,而不是编写原始的PHP代码。
所有优秀的框架都有可帮助您避免危险编码实践的库。例如,它们都有数据库抽象层,不仅使数据库工作更容易,而且更安全。如果您遵循您正在使用的框架的准则,您将保护自己免受许多最严重的危险。当然,你仍然需要知道要注意什么,但这会有很大的帮助。
我建议使用的框架是Symphony或CakePHP,但是还有很多其他的。
希望有所帮助。