[英]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
$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.