保护ajax php webapp的指南

时间:2009-01-15 11:56:47

标签: php ajax security

我有一个小的AJAX应用程序,用PHP编写,我从一开始就没有保证。我想就如何保护应用程序,实施和检查的内容提出一些建议。我没有在谷歌上找到任何详尽的指南,并希望可以推荐一些。

这是一个连接到mysql数据库并显示记录的小应用程序。它没有使用任何外部库。

我不确定如何在传递变量时保护,例如:

if (isset($_GET["cmd"]))
  $cmd = $_GET["cmd"];

我应该在检查确认之前简单地声明$ cmd吗?

3 个答案:

答案 0 :(得分:1)

如果您正在谈论保护应用程序(而不是它所使用的服务器/环境 - 我没有资格解决它),那么我会考虑以下内容:

  1. 确保解析/清除所有用户输入,以确保他们无法执行SQL injection attacks之类的操作。这包括任何ajax请求,其中用户输入可以存储在查询字符串中。 事实上,应该以这种方式验证/清理从查询字符串传入应用程序的任何内容
  2. 您使用任何密码吗?如果是这样,请使用SSL来阻止任何数据包嗅探。并hash your passwords in your database with a salt
  3. 快速Google挖出了这个看起来很不错的内容:http://www.securityfocus.com/infocus/1706
  4. 保护用户输入的一些提示http://www.dagondesign.com/articles/writing-secure-php-scripts-part-1/

答案 1 :(得分:1)

处理用户输入时最重要的规则是:验证输入,转义输出

答案 2 :(得分:0)

您正在寻找最终的安全手册吗?找到它时给我发一份!

简短清单:

  • SQL vunerabilities?
  • 验证您的$ _GET和$ _POST输入,并删除任何有趣的内容
  • 丢失get_magic_quotes_gpc()(或其他任何名称)

当然,你的系统管理员应该做的一切:

  • 最新版本的PHP
  • 最新版本的MySQL

我不确定没有外部组件会让您自动更安全。我使用ADODB for PHP来处理我所有的SQL内容。我知道它会检查vunerabilities,所以我不必这样做。