2

我有一个没有 SQL 的 CMS 站点。一切都写入文件。

但是有一个函数 ( login($login, $pass)) 可以使用简单的 if-else 语句检查登录表单中的 POST 数据

if 
    login-data-from-file == POST['login'] 
and
    password-data-from-file == POST['pass'] 
then 
   "Log user in"

我想知道是否有办法注入这样的代码。你怎么看?

4

3 回答 3

5

没有,因为大概您只是在比较字符串。

但是,对 SQL 注入的免疫不会自动使任何应用程序安全。总是需要担心跨站点脚本会话固定(只是其中最常见的两个攻击向量)。

于 2012-07-04T22:15:57.523 回答
1

如果您不使用 eval 或任何其他黑魔法,则不能直接注入 PHP 代码。尽管将用户和密码以纯文本形式存储在文件中并不是很安全。如果你仍然想这样做,你应该确保

  1. 包含用户名和密码的文件存储在可公开访问的文件夹之外的位置
  2. 密码经过哈希处理和加盐处理(非常重要!)
  3. 代码中没有用户可以访问包含用户名和密码的文件的地方
于 2012-07-04T22:19:19.243 回答
0

如果您做出正确的 if-else 语句,我认为没有办法注入此代码。可以发送NULL值 (%00),但它不应该改变任何东西。

于 2012-07-04T22:17:56.890 回答