知识大全 如何书写安全的PHP代码[2]
Posted 密码
篇首语:少年击剑更吹箫,剑气箫心一例消。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 如何书写安全的PHP代码[2]相关的知识,希望对你有一定的参考价值。
如何书写安全的PHP代码[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
所幸的是 这种情况还是很容易避免 通过检查要进入数据库的数据 并删除或取消它们 我们可以防止任何人在这个数据库上执行他们自己的SQL语句 函数的方法如下
function make_safe($variable) $variable = addslashes(trim($variable));return $variable;现在 修改了我们的执行语句 用_POST取代上面的执行变量 我们现在把所有的用户数据通过make_safe函数 在以下代码
$username = make_safe($_POST[ username ]);$password = make_safe($_POST[ password ]);$check = mysql_query( Select Username Password UserLevel FROM Users Where Username = $username and Password = $password );现在 如果一个用户输入恶意的上述数据 查询看上去像下面这样 是完全无害 以下查询将选择从数据库中的用户都和 \\ or = # 相等的
Select Username Password UserLevel FROM Users Where Username = \\ or = # and Password =现在 除非你曾经提供了一个非常特殊的用户名和空白密码 你的恶意攻击者将不能做任何损害的事 像这样检查所有的数据通过你的数据库是非常重要的 尽管你认为这是已经很安全 HTTP头可以由用户伪造 他们参照地址可以伪造 浏览器用户字符串可以伪造 不要信任一条用户发送的数据 虽然 你认为是安全的
文件操作
一些现今的网站的URL 是这个样子的
index php?page=contactusindex php 文件包括 contactus 文件 而且这个网站似乎正常运行 不过 用户可以很容易地将 contactus 改成他们自己喜的东西 举例来说 如果您正在使用Apache的mod_auth去保护文件 并储存你的密码在一个文件名为 htpasswd (传统姓名)里 然后 如果用户访问以下地址 脚本将输出你的用户名和密码
index php?page= htpasswd通过改变URL 在某些系统中 在另一个可以运行PHP的服务器去引用文件 害怕? 你应该害怕 再次所幸的是 这是比较容易防范 首先 你必须确保正确设置 open_basedir 在你的php ini文件 并已设置 allow_url_fopen 为 Off 这将阻止大多数这类型的攻击 以保护远程文件和文件系统 其次 如果可以的话 请检查文件要求对有效文件 如果你限制了某些文件可以用这个脚本 你可以节省不少后来恶果
使用默认
当mysql是安装 它使用了默认用户的 root 和空白的密码 SQL Server的用途 sa 作为默认的用户和提供了一个空白的密码 如果有人发现你的数据库服务器地址 并想尝试登录 这些都是首次组合 他们会尝试 如果你没有设定不同的密码(最好也和用户 那么你很可能一天一觉醒来发现你的数据库已经被删除 所有用户号码被盗 和所有软件一样 你如果使用的软件是默认用户名和密码 改变他们
不要让安装文件在线
很多PHP项目用安装文件来安装 其中有不少是一旦运行就自我删除的 但许多不是这样的 直到您删除安装文件 如果让安装文件在线请注 他们可能仍然可用 有人可以用它来复盖你的整个网站
预见性
试想一下 你的网站让一个坏人盯上 这个坏的人要打破你的管理区 改变你的所有产品的描述如 这个产品很差劲 我猜测 他们首先会去// yoursite /admin/ 万一它存在 将你的敏感文件和文件夹像预测一样 他们很容易就受到黑客攻击
为此 要确保你的姓名你的敏感文件和文件夹 让他们很难猜测 把你的 admin 位于// yoursite /jsfh sfsifuhsi / 或者更难去写的 但它为你的网站添加一些额外的保障 如果你需要一个记得快的地址 但不用 admin 或 administration (或你的用户名和密码) 用一些不经常用的
这同样适用于用户名和密码 如果你有管理区 不要使用 admin 作为用户名和 password 作为密码 针对一些特殊的情况 最好是两个字母和数字(有的黑客利用一些所谓的 词典攻击 尝试每一个字 在字典里的密码 直到他们找到密码 添加一对密码 使这一类攻击无用) 这也是明智的去定期改变你的密码 (每两个月) 最后 要确保当一个用户名输入 Wrong Password 当错误的密码输入时你的错误讯息给没有输出 如 Unknown Username 恶意用户都知道 他们已经成功地猜测一个有效的用户名 对上述两种手段 采用通用的 登录错误 的错误信息 如果是用户名和密码输入错误的恶意用户就没有任何办法设想正确的用户和密码
最后 彻底和完全地设想
你假设你的网站不会受到攻击 或面要对任何问题的话 但当最终出事 你将有大量的麻烦 如果 在另一方面 假设你的每一个客人到你的网站是为了攻击你 你永远处于战争状态 你就能帮助你把你的网站做得安全 并准备得没有一点闪失
cha138/Article/program/PHP/201311/21435相关参考
PHP安全检测代码片段(分享) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本篇文章是对PHP安全
PHP本身再老版本有一些问题比如在php和php以前有一些比较严重的bug所以推荐使用新版另外目前闹的轰轰烈烈的SQLInjection也是在PHP上有很多利用方式所以要保证安全PHP代码编写是一
PHP文件上传代码用法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! php文件上传代码编写过程
复制代码代码如下:$t=microtime(true);//执行代码$t=microtime(true);echo耗时round($t$t)秒;cha138/Article/pr
本篇文章是对phpios推送进行了详细的分析介绍需要的朋友参考下 复制代码代码如下:cha138/Article/program/PHP/201311/20950
一在javascript中嵌入php代码 javascript若是通过js文件包含进来的那么js文件中也可以直接写php代码只不过包含js文件是扩展名要改成php如 <scripther
PHP随机获得字符代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!<?php//获取随机字
PHPWeb开发学习实录:界定PHP代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 第章PH
20个实用PHP实例代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! PHP可
这篇文章介绍了javascript中直接写php代码的方法有需要的朋友可以参考一下 一在javascript中嵌入php代码javascript若是通过js文件包含进来的那么js文件中也