2016-08-18 55 views
-4

我對PHP的技能有限,需要完成通過URL傳遞憑據的沮喪/低安全性實踐 - 這對我的特殊目的來說是一個非常好的相關解決方案。什麼系統可用於通過URL進行自動登錄

我的網站有一些瑣碎/不敏感的內容,但我希望隱藏並控制訪問權限。不過,我希望他們不需要登錄也不需要處理憑證。所以我認爲該組的憑據通過URL傳遞到自動登錄任何用戶,允許他們瀏覽該網站的該區域。此內容不敏感,這些不是用戶帳戶/密碼/數據,而是我設置的組。

我應該能夠分發鏈接到任何頁面,如 http://example.com/home.php?&username=GROUPNAME&password=PW123 並允許他們導航所有受保護的頁面而不會被註銷。

更多上下文:離線某個組會爲該區域/這些頁面(我自己創建的組帳戶並且稍後可能會刪除/修改以防止訪問)請求一個帳戶。我不希望沒有成員資格的人訪問這些內容,我也不擔心團體之外的人分享鏈接。

我應該去用戶結霜/用戶蛋糕?還是會過度使用GET/POST傳遞證書而造成挑戰?不知道如果密碼被加密,這種方法是行不通的。

還是應該遵循一些低安全性教程來設置登錄系統,另一個使用GET/POST來傳遞憑據?

+0

而是發送用戶名/密碼,只需發送一個值就像一個隨機生成的令牌。然後將該令牌與他們需要在數據庫中看到的任何數據相關聯。如果您需要撤銷訪問權限,請更改數據庫中的令牌,並且舊令牌不會存在使其無效。您還可以將令牌存儲在Cookie中,以使後續頁面不需要它在URL中。這有點像許多其他服務提供的共享鏈接。這只是「通過默默無聞的安全性」,您無法看到您不知道的任何頁面。這不是真的安全 –

+0

@JonathanKuhn只是好奇 - 是什麼讓這是一個可怕的想法?這個問題清楚地表明安全並不是一個問題。這讓我想起了許多具有URL共享選項的文件共享應用程序。 – Nick

+1

@heybignick我剛剛更新說,它就像您發佈您的評論時其他服務提供的共享鏈接。想像它傳遞用戶名/密碼這是一個壞主意。通過網址傳遞用戶名/密碼不是很好,原因有幾個。把它想象成一個頁面的「分享」標記就沒有問題。 –

回答

1

如果你真的只是想隱藏數據並做出非常低的安全性考慮,你可以使用$ _COOKIE和你在每個頁面上驗證過的哈希值。就像你的證書不容易訪問,你有「一些」安全。

參考:https://www.sitepoint.com/baking-cookies-in-php/

但說實話,這樣做的最佳方式將是用$ _SESSION。

參考:https://www.sitepoint.com/php-sessions/

$ _SESSION是我們用於正常登錄的東西,它是相對容易實現。

看到這個政黨成員,例如:http://code.tutsplus.com/tutorials/user-membership-with-php--net-1523

0

更新的基礎上需要不同的代碼爲不同的羣體。這是一個純粹的PHP解決方案,但根據組的數量,數據庫解決方案可能更具說服力。

以下是通過獲取請求獲取共享令牌的基本思路。如果你派人去http://www.yoursite.com/example.php?code=123qweasd

然後您的使用example.php PHP將

<?php 

// First make sure there is a code passed through the url 
if(!isset($_GET['code'])) die; 

// Set up your groups 
$groups = array(
    '123qweasd' => 'Group 1', 
    'dsf355fdf' => 'Group 2', 
    '43256vcgd'=> 'Group 3' 
); 

// Make sure the code is correct 
if(!isset($groups[$_GET['code']])) die; 

// Any content below here will only be shown to if an index of the above array was passed through the url. 

// Output the group name if you want (in this case, the output would be 'Group 1') 
echo $groups[$_GET['code']]; 
+0

是的,我確實需要爲單獨的組分配不同的代碼,因爲主頁面使用的過濾器變量與該組應該有權訪問的頁面有關。 – user2213069

+0

@ user2213069好的,做了一個編輯。如果你正在做很多團體,數據庫可能會更好。 – Nick