处理在没有POST的情况下访问PHP流程页面的用户

时间:2013-12-18 22:58:46

标签: php ajax security user-interface

这个问题涉及安全/用户端方面。

假设我有一个通过ajax调用的脚本,它将向数据库添加内容。

脚本检查请求方法。如果它来自'POST',则脚本将执行此功能。

我不希望用户访问我的网页并收到错误或空白页。

处理此问题的“理想”方式是什么?

我目前的计划如下:如果它不是POST方法,请以与404处理程序相同的方式将它们重定向到错误页面,然后为其他地方提供一些链接。

2 个答案:

答案 0 :(得分:3)

返回400 Bad Request是一种非常标准的方式,用于指示用户在没有所需的正确数据的情况下到达那里。

if(!isset($_POST)){
  header("HTTP/1.0 400 Bad Request");
}

最重要的是,如果您想确保只有您的UI发布到该页面,您应该花些时间调查一些跨站点请求伪造保护(CSRF)。

答案 1 :(得分:0)

试试这个,我在通过ajax调用的所有页面中使用它:

if ($_POST['ajax'] == "ajax") { // You need to set this is your post ajax variables sent to this php file.
    // all your code here
} else {
    // Not needed for a blank page, or whatever you want for another page ie
    header ("location: 404.php");
}