簡體   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