Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从URL中获取信息(或者这是一件坏事?)_Php_Url - Fatal编程技术网

Php 如何从URL中获取信息(或者这是一件坏事?)

Php 如何从URL中获取信息(或者这是一件坏事?),php,url,Php,Url,因此,我对在高度安全的环境(医院网站)中生成PHP应用程序还不太熟悉,我正努力提高警惕。我的一个页面上有一个表单,如果电子邮件地址无效或表单为空,它会像这样重定向用户: header("Location: /root/page.php?message=message to the person who messed up"); exit; if(isset($_GET['message'])){ echo "$_GET[message]"; } 页面上收到的消息如下: header(

因此,我对在高度安全的环境(医院网站)中生成PHP应用程序还不太熟悉,我正努力提高警惕。我的一个页面上有一个表单,如果电子邮件地址无效或表单为空,它会像这样重定向用户:

header("Location: /root/page.php?message=message to the person who messed up");
exit;
if(isset($_GET['message'])){
    echo "$_GET[message]";
}
页面上收到的消息如下:

header("Location: /root/page.php?message=message to the person who messed up");
exit;
if(isset($_GET['message'])){
    echo "$_GET[message]";
}
因此,很明显,该消息显示在URL中。我的问题有两个方面:

  • 这样做不安全吗?
  • 如果是,我是否向用户显示消息而不在URL中

  • use echo$\u GET['message']urs在GET[']部分中缺少单引号,而u r使用$\u GET inside引号。它应该像“text”一样执行。$\u GET[],其中GET[]左侧的点是连接运算符。

    因此,我采取了以下措施来防止在URL中发送信息:
    我的“控制器”:

    “观点”:


    发送带有AJAX的post请求,直接回显任何用户输入,而不考虑其是否在url中,或者post请求是否不安全。确实不需要重定向到专用错误页。如果必须,请在页面顶部重新显示带有错误的表单。此外,如果安全问题如此严重,那么自己写这篇文章也不是一个好主意。最好使用一个经过战斗测试的框架,它可以为您做很多这方面的工作。@AdamMcGurk,它将比您现在拥有的更安全