在我的網站上,我有一個用戶登錄系統,當他們登錄時,他們被帶到他們的個人資料頁面,這是由他們的uid吃的deism。事情是,沒有什麼可以阻止用戶只是改變uid並轉到其他人的個人資料並以他們的名義行事。爲了阻止這種情況,我實現了一個URL/MySQL系統,通過這個系統,如果用戶的uid不是URL中的uid,他們將被重定向到他們自己的配置文件。這裏的問題是,在配置文件中有更改URL的表單,這樣做會刪除uid查詢,導致頁面(因爲缺少uid)將您帶到您的配置文件並忽略表單輸入。限制用戶到他們的個人資料頁面
的代碼是:
<?php
mysql_connect ('x', 'x', 'x');
mysql_select_db ('x');
if(isset($_COOKIE['wd_un'])) {
$un = $_COOKIE['wd_un'];
$pass = $_COOKIE['wd_pass'];
$cook = "SELECT * FROM x WHERE username = '$un' AND password = '$pass' limit 1";
$cookr = mysql_query($cook) or die (mysql_error());
if(mysql_num_rows($cookr) == 0) {
header ("Location: index.php");
}
else {
$urluid = mysql_real_escape_string($_GET['uid']);
$uidcheck = "SELECT * FROM x WHERE username = '$un' AND password = '$pass'";
$uidcheckq = mysql_query($uidcheck) or die (mysql_error());
while($rcu = mysql_fetch_assoc($uidcheckq)) {
$dbuid = $rcu['uid'];
if($urluid != $dbuid) {
header ("location: home.php?uid=$dbuid");
}
else {
}
}
}
}
mysql_close();
?>
有沒有解決辦法?
如果你知道他們是通過會話的人,爲什麼即使有URL參數? – 2012-01-26 23:21:32