2012-07-21 72 views
3

我在网站上正与托管公司,PHP与MySQL。Web安全:从哪里开始

我所熟悉的SQL注入和XXS,我知道如何代码,以便这些不会发生。不过,我仍然计划测试网站的漏洞。

现在,我有点新的Web开发,我知道有很多对网站的安全性阅读。

  1. 还有什么其他的攻击在那里它们通常在 网站以及使用PHP和MySQL的Web服务器使用
  2. 如何防范这些攻击?
  3. 即使我的代码是完美的,我需要什么来寻找托管公司的网络 服务器配置这可能使Web服务器易受攻击?
+1

这可能是一个太宽泛的问题,需要在这里回答。但是:请参阅[OWASP的一套备忘单](https://www.owasp.org/index.php/Cheat_Sheets)。好东西。 – 2012-07-21 05:40:52

+0

填充oracle攻击,如果您正在对服务器上的用户提供的数据进行任何类型的解密。定时攻击。 HTTPS的流量分析(它泄漏页面/图像/脚本大小和加载时间,一个)。 – 2012-07-21 06:24:36

+0

我最喜欢的问题之一,我赞成和近距离投票。 – 2012-07-21 07:07:32

回答

2

东西是好的要牢记:

查找到PDO数据库的目的,而不是mysqlmysqli。 (PDO是一种简化不同类型数据库之间差异的包装,但也大大简化了安全性)。

PDO的准备语句都使建筑物查询100倍更容易,使他们几乎SQL注入,防只要你总是编制报表(这是愚蠢的,易于使用PDO以及) 。

这是严重的价值15分钟,学习如何在任的其他两个MySQL选项使用PDO。

虽然这可能会使您的数据安全性不受影响,但它并不能保护您免受可能存储在数据库中以便稍后提供给用户的数据。

在这方面:

  1. 验证从用户那里获得的一切 - 一切从表单输入GET/POST值
  2. 逃脱你写信给用户的页面HTML
  3. 从未一切需要用户输入原样,选择类,等等(例如:include $_GET["page"];

JavaScript的 - 我的宝贝:

  1. 了解闭包和模块/命名空间的模式。
  2. 使用它们,你写的每一个大的应用程序(尤其是任何需要任何用户信息收集,等等)
  3. 明白,你不能阻止用户运行任何东西,他们希望在您的网站,很容易作为开放的开发控制台和粘贴的东西。
  4. 与#3的理解,学习如何使用#1和#2,防止跑#3用户访问的用户提供给您的任何数据(或者你保存有关用户)

一般,保存cookies和URL字符串中的用户信息,并尽可能将其保留在JS关闭,POST请求中,然后尽可能保留在用户的会话中,服务器端。

0

一个很好的阅读资源是OWASP,它有一个庞大的维基风格网站,里面充满了关于网络安全的信息。这可能会非常沉重,因为那里有很多,但它是保存在书签中的非常好的资源。

另一个您可能会觉得有用的网站是PHP The Right Way,它旨在帮助您更安全地编写PHP代码并使用最佳做法。这个网站还是相当新的,但已经有一些很好的提示。

我对你的代码的建议:你可以做的一件最好的事情就是使用一个体面的PHP框架,而不是编写原始的PHP代码。

所有优秀的框架都有库,可以帮助您避免危险的编码实践。例如,他们都有数据库抽象层,不仅使数据库工作更容易,而且更安全。如果你遵循你正在使用的框架的指导原则,你将会保护自己免受许多最严重的危险。当然,你仍然需要知道要注意什么,但这会有很大帮助。

我对使用框架的建议是Symphony或CakePHP,但其他人也有很多。

希望有所帮助。