繁体   English   中英

防止直接访问PHP

[英]Prevent direct access PHP

我有2个脚本。 那是 :

  1. registration.html
  2. process_registration.php

有时有人打开直接链接到process_registration.php的链接,那么我该如何防止呢?

Process_registration.php函数用于保存从registration.html输入获得的数据。

任何想法 ?

您可以使用 :

if (!isset($_POST['field'])) {
  die();
}

在process_registration.php文件的顶部。

当然,用表格中现有的字段之一替换该field

如果您反对确实使用脚本注册多个帐户的泛洪者,则可以在注册表单上使用验证字段,也可以使用防止爬网的保护措施

只是另一种方法:

if (empty($_POST)) {
  exit("Direct access not allowed");
}

对象名称更加灵活。 为了提高安全性,您应该将其放在表单中:

<input type="hidden" value="9957374" name="hiddenvalidate" />

并在您的脚本中:

if (!isset($_POST['hiddenvalidate']) || $_POST['hiddenvalidate'] != 9957374) {
  exit("Direct access not allowed");
}

您可以检查当前请求是否为POST类型(如果使用表单)

if($_SERVER['REQUEST_METHOD'] == 'POST')

您还可以检查是否设置了所有必需的变量。

您可以在process_registration.php中使用$_POST数组,例如:

if(!isset($_POST['yourvariable'])){
//Redirect to registration page
}

您也可以使用PHP Session 如果未设置会话,则将用户重定向到注册页面。

我喜欢Joomla处理此问题的方式。

在Joomla中的每个php页面上,您将看到以下代码:

// No direct access
defined('_JEXEC') or die; // it's a config setting

仅顶层页面中包含此变量。 如果直接打开所有其他文件,则将其关闭,从而防止任何意外的误用/数据丢失。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM