PHP变量在POST中是安全的

PHP变量在POST中是安全的,php,security,variables,exploit,Php,Security,Variables,Exploit,我在我的网站上做了一个按钮,当点击这个按钮时,会使用PHP从另一个网站调用API。我必须将我的登录详细信息作为变量放入PHP中。我见过一些黑客可以通过在地址栏中键入内容来获取PHP变量值的漏洞攻击?不确定这是XSS还是SQL注入还是什么,但我已经看到它将在哪里以XML格式打印PHP代码 下面是一个例子: if (isset($_POST['submit'])) { $time = time(true); $prize = 200; $ID = "my_secret_API_ID

我在我的网站上做了一个按钮,当点击这个按钮时,会使用PHP从另一个网站调用API。我必须将我的登录详细信息作为变量放入PHP中。我见过一些黑客可以通过在地址栏中键入内容来获取PHP变量值的漏洞攻击?不确定这是XSS还是SQL注入还是什么,但我已经看到它将在哪里以XML格式打印PHP代码

下面是一个例子:

if (isset($_POST['submit'])) {
   $time = time(true);
   $prize = 200;
   $ID = "my_secret_API_ID";
   $Password = "my_secret_API_Password";
   $APIcall = json_decode(file_get_contents("https://apiwebsite/developer/$ID/get_info&pw=$Password"), true);
   $display = $APIcall ['some_info'];
   echo $display;
}

我的登录详细信息安全吗?我是否应该将它们设置为$U POST之外的全局变量?我应该在单独的PHP文件中完全定义它们,然后使用include吗?这有区别吗

您从未对从表单中收到的数据执行任何操作。不可能有任何东西是脆弱的


Isset只返回布尔值,因此不能以公开任何应用程序的方式进行操作。

您从未对从表单接收的数据执行任何操作。不可能有任何东西是脆弱的


Isset只返回布尔值,因此不能以公开任何应用程序的方式进行操作。

我觉得另一个答案实际上没有回答您提出的问题。Ohgodwhy的答案与您的
$\u POST
变量有关,海报上的内容是正确的,如果您没有使用这些变量,那么您就不会受到攻击(除非您使用的PHP或其他组件不太可能)

我认为您的问题与代码的这一部分特别相关

$ID = "my_secret_API_ID";
$Password = "my_secret_API_Password";
如果您的站点上没有漏洞(或类似漏洞),这些变量应该是安全的。确保运行的任何其他代码都不会读取本地文件并显示它们,否则恶意用户可能会操纵它们来显示您的凭据。考虑将这些存储在加密的数据库中(在可能的情况下分离代码和数据总是很好的)。
如果
https://apiwebsite/developer/$ID/get_info&pw=$Password
会返回您无法控制的未编码数据。e、 g.如果API中有用户数据,并且一个邪恶的用户在其中放入了一些
代码,则您的站点将运行该数据,除非您通过进行编码。这将是一个漏洞。如果您完全信任
apisite
来正确编码超出其控制范围的值(并且您完全信任
apisite
本身),那么您现有的代码是可以的。

我觉得另一个答案实际上并没有回答您提出的问题。Ohgodwhy的答案与您的
$\u POST
变量有关,海报上的内容是正确的,如果您没有使用这些变量,那么您就不会受到攻击(除非您使用的PHP或其他组件不太可能)

我认为您的问题与代码的这一部分特别相关

$ID = "my_secret_API_ID";
$Password = "my_secret_API_Password";
如果您的站点上没有漏洞(或类似漏洞),这些变量应该是安全的。确保运行的任何其他代码都不会读取本地文件并显示它们,否则恶意用户可能会操纵它们来显示您的凭据。考虑将这些存储在加密的数据库中(在可能的情况下分离代码和数据总是很好的)。
如果
https://apiwebsite/developer/$ID/get_info&pw=$Password
会返回您无法控制的未编码数据。e、 g.如果API中有用户数据,并且一个邪恶的用户在其中放入了一些
代码,则您的站点将运行该数据,除非您通过进行编码。这将是一个漏洞。如果您完全信任
apisite
能够正确编码超出其控制范围的值(并且您完全信任
apisite
本身),那么您现有的代码是可以的。

可以,谢谢。因此,当我看到黑客利用地址栏中的一个网站并泄露一些网站代码时,这仅仅是因为他们的表单没有被正确转义/净化吗?@m1xolyd1an问题在于如何处理数据,而不是数据来自何处。任何漏洞都是由于对某些数据(从某处传递/传输)的错误解释造成的。谢谢。因此,当我看到黑客利用地址栏中的一个网站并泄露一些网站代码时,这仅仅是因为他们的表单没有被正确转义/净化吗?@m1xolyd1an问题在于如何处理数据,而不是数据来自何处。任何漏洞都是由于对某些数据(从某处传递/传输)的错误解释造成的