防止攻击网站

时间:2014-03-07 16:23:41

标签: php mysql security

当我需要使用基于php的网站将数据库上传到托管服务提供商时,我唯一需要关注的是:

1)SQL注入,我可以使用magic_quotes跳过这个,如果魔术引号没有打开,我添加了addslashes。 2)通过设置控件来防止用户将恶意文件上传到我的网站,两者都在哪个文件扩展名(例如.jpg或jpeg)和哪种文件类型(image / jpg ecc)。

现在只是这些我需要担心的两件主要事情?

并且:如果我只是让网站的管理员能够在输入密码后上传图像或在数据库中插入新文章,我需要防止那种2种攻击吗?或者在我用数据库md5编码密码后该区域是安全的吗?

最后:如果我在MD5中编码我的密码,当用户输入密码时我需要对其进行编码在使用方法POST发送之前?

编辑:

对于那些对我的问题进行投票的人,我发布的2次攻击只是一个例子,所以我的问题更广泛,比如,如果我想防止攻击我的网站,我需要知道什么。只是为了得到一些东西然后去寻找它。事实上,网上的MOST教程,特别是我的母语,已经过时或不好。

1 个答案:

答案 0 :(得分:-5)

您可能需要查看:https://www.owasp.org/index.php/Category:Attack

SQL注入和文件上传不是您在服务器上可能遇到的唯一攻击。

最知名的是LFI / RFI,XSS和CSRF,以及SQL注入。

现在关于MD5,这是一个很好的方法。事实是,网络上充满了词典,在给出MD5时会显示密码。为了加强它,开发者通常使用盐渍哈希。

例如:md5("ùmé'l /:'(-" . $password);然后,祝你在任何地方找到甚至密码为“1234”的md5。

编辑:这个哈希是“微不足道的”打破。请尝试这个:

$hash = md5("ùmé'l /:'(-" . $password).md5("&é'à_é('".strrev($password)).md5("&éàç'&àç   /apmq").md5("fu assholes.");
$hash = strrev($hash);

现在玩得很开心,但不知道你的md5抨击的公式。

/ EDIT

关于魔术引语:这是一件虚假的好事。即使打开了这些应用程序,您的应用程序仍可能容易受到SQL注入攻击。

例如,如果您接受请求:"Select * from table where id=$_GET['id']",那么即使不使用引号也可以注入您的SQL服务器。

最好不要使用魔术引号,并学会正确地做出请求。 (addslashes字符串,并将整数转换为整数)。

关于图片上传,确保安全的最佳方法是尝试获取图片尺寸。如果它没有,那么它显然不是图像。

安全很重要,很高兴看到有人关注它。

祝你好运。