簡體   English   中英

從未登錄的訪問者保護我的框架的最佳技術是什么?

[英]What's the best technique to protect my framework from visitors who are not logged in?

首先,我想說我使用搜索框尋找類似的問題並且沒有成功,可能是因為我的英語能力差。

我有一個'自制的'框架。 我有一些必須僅對管理員可見的PHP文件。 我目前這樣做的方法是在每個頁面內檢查以查看會話是否已打開。 如果沒有,則用戶被重定向到404頁面,看起來好像已經請求的文件不存在。

我真的不知道這是否可以保證工作,或者是否有更好更安全的方式,因為我目前正處理一些永遠不會公開的機密數據。

你能給我一些提示嗎? 或者留下我能找到的鏈接?

非常感謝,再次請原諒我踢字典。

編輯

我通常在每個文件的頂部寫的是這樣的

<?php
include("sesion.php");
$rs=comprueba(); //'check'

if ($rs) { 
?> 

然后,最后

<?php 
}
else { header("Location: err404.html"); }
?>

這是一個如此划職的工作,不是嗎?

編輯

假設我在名為customers.php的文件中有一個客戶列表

該文件當前可能位於http://www.mydomain.com/admin/customers.php ,並且只有admin用戶才能看到該文件。 管理員用戶登錄后,我創建了一個會話變量。 該變量是我在每個頁面頂部檢查的變量,如果存在,則顯示客戶列表。 如果沒有,則用戶被重定向到404頁面。

感謝您的耐心等待。 我真的很感激。

抱歉,如果我在解釋你的問題時不正確,但我認為你要問最好的方法來保護框架中使用的個人PHP頁面,以及輸入URL的人們查看它們?

如果是這樣,我發現的最佳路徑是在主文件中聲明一個常量(通常是index.php)。

<?php
define( '_MYAPP', 1 );

然后,在每個PHP文件的頂部( 您定義類之前 )put -

<?php
defined( '_MYAPP' ) or die( 'No access.' );

我強烈建議你使用會話。

現在,我認為有兩種方法可以做到這一點。

我能想到的最簡單的方法是:創建一個session.php文件,並在應用程序的每個文件中包含/要求它。

在此session.php中,對用戶成功登錄時可以定義的安全令牌進行會話檢查(最好是加密的鹽漬字符串)。

編輯:我在session.php文件中做的是die(); 或使用header()重定向; 如果沒有檢測到正確的會話。

如果需要,可以添加一組“公共”文件,以便在當前正在執行其中一個文件時跳過會話檢查。

另一種更難的方法(仍使用會話和令牌驗證)將創建一個調度程序文件,該文件檢查會話,然后將請求重定向到呈現所請求操作的視圖。

如果安全性在您的應用程序中至關重要,您應該閱讀本指南: PHP安全指南: php安全聯盟概述

<?php
$logged_in = 'no';
include("session.php"); // changes $logged_in to yes if logged in

if($logged_in == 'no'){
header("Location: login.php?error=notloggedin");
exit;
}
?>

您可以將它放在所有頁面的頂部,或者只是將它放在session.php文件中,或者將header.php文件包含在所有頁面中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM