【问题标题】:Security of PHP POST ArrayPHP POST 数组的安全性
【发布时间】:2016-11-03 20:34:15
【问题描述】:

我正在学习如何从攻击者手中拯救我的项目,所以我有一个问题。

我有一个包含usernamepassword 字段的表单,这些字段被传递到PHP 脚本。

接收到的数组是这样的:Array([username] => X, [password] => Y)

攻击者能否逃脱此数组以将任意 PHP 代码注入我的脚本?

如果是,那么他是如何做到的,我该如何应对?

Question Attachment

感谢您的帮助。

【问题讨论】:

  • 逃脱什么?编写一个脚本并将其放在哪里
  • “保存在数组中”是什么意思?您是在谈论发布表格,还是在哪里“回显”该数组?您的问题难以回答...写下有关您的应用的细节并向我们展示您担心的代码..
  • @u_mulder 在给出这个数组的 php 文件中。
  • @Magnus Eriksson 查看问题附件。保存的两个字符串都来自 html 表单,因此您可以随意在其中输入任何内容。
  • 那只是一个普通的数组!?它没有告诉我们关于您的应用程序的任何信息。重要的是您在代码中使用它做什么,而您还没有向我们展示关于它的任何内容...

标签: php arrays


【解决方案1】:

攻击者无法“逃脱”PHP 数组,因为数组的内容不会作为代码执行。它可能包含一个 PHP 字符串,但该字符串不会被执行。

可能不安全的是您的 PHP 代码稍后处理用户输入的方式。

如果您在不清理数据的情况下输出数据,则用户可以输入随后会出现在您的网站上的任何 javascript 代码(有关更多信息,请查看跨站点脚本或 XSS)。 为了防止在 PHP 中出现这种情况,请查看 this question

或者,如果您将数据放入数据库而不转义,用户可以输入他们自己的 SQL 命令(有关更多信息,请查看 SQL Injection)。 为了在 PHP 中防止这种情况,请使用 PDO 之类的东西和准备好的语句。

【讨论】:

    猜你喜欢
    • 2016-04-29
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多