找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3171|回复: 1

[分享] php接口开发安全问题

[复制链接]
发表于 2015-6-11 13:54:19 | 显示全部楼层 |阅读模式 来自 福建省厦门市
  php接口开发不是一件简单问题,网络上充斥着多种病毒和陷阱,这时就可能会遇到一些安全问题。那么,php接口开发 要注意的安全问题是什么呢?不少人想要知道这方面的知识,下面让一品威客网小编来给大家详细介绍一番。

  规则 1:禁用那些使安全性难以实施的PHP设置
  已经知道了不能信任用户输入,还应该知道不应该信任机器上配置 PHP 的方式。例如,要确保禁用 register_globals。如果启用了 register_globals,就可能做一些粗心的事情,比如使用 $variable 替换同名的 GET 或 POST 字符串。通过禁用这个设置,PHP 强迫您在正确的名称空间中引用正确的变量。要使用来自表单 POST 的变量,应该引用 $_POST['variable']。这样就不会将这个特定变量误会成 cookie、会话或 GET 变量。
  规则 2:绝不要信任外部数据或输入
  关于Web应用程序安全性,必须认识到的第一件事是不应该信任外部数据。外部数据(outside data) 包括不是由程序员在PHP代码中直接输入的任何数据。在采取措施确保安全之前,来自任何其他来源(比如 GET 变量、表单 POST、数据库、配置文件、会话变量或Cookie)的任何数据都是不可信任的。
  例如,下面的数据元素可以被认为是安全的,因为它们是在PHP中设置的。
  清单 1. 安全无暇的代码
  复制代码 代码如下:
  $myUsername = ‘tmyer';
  $arrayarrayUsers = array(‘tmyer', ‘tom', ‘tommy');
  define(“GREETING”, ‘Hello there' . $myUsername);
  清单 2. 不安全、有瑕疵的代码
  复制代码 代码如下:
  $myUsername = $_POST['username']; //tainted!
  $arrayarrayUsers = array($myUsername, ‘tom', ‘tommy'); //tainted!
  define(“GREETING”, ‘hello there' . $myUsername); //tainted!
  为什么第一个变量$myUsername 是有瑕疵的?因为它直接来自表单 POST。用户可以在这个输入域中输入任何字符串,包括用来清除文件或运行以前上传的文件的恶意命令。您可能会问,“难道不能使用只接受字母 A-Z 的客户端(Javascrīpt)表单检验脚本来避免这种危险吗?”是的,这总是一个有好处的步骤,但是正如在后面会看到的,任何人都可以将任何表单下载到自己的机器上,修改它,然后重新提交他们需要的任何内容。
  解决方案很简单:必须对$_POST['username'] 运行清理代码。如果不这么做,那么在使用$myUsername的任何其他时候(比如在数组或常量中),就可能污染这些对象。对用户输入进行清理的一个简单方法是,使用正则表达式来处理它。在这个示例中,只希望接受字母。将字符串限制为特定数量的字符,或者要求所有字母都是小写的,这可能也是个好主意。
      来源http://www.epweike.com/gonglue/149183.html

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2015-6-11 15:49:24 | 显示全部楼层 来自 重庆市
编程的玩意看不懂

评分

参与人数 1金币 +3 收起 理由
抢楼评分专号 + 3 很幸运,你获得了抢楼奖励!

查看全部评分

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-4-20 02:27 , Processed in 0.054261 second(s), 12 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表