※ 引述《HwangTW (谷歌翻譯王)》之銘言:
: 因公司接觸到aspx,而我也發現這東西只要有最高權限的GUID(固定)
: 即使在無痕模式下也能直接登入
: PHP有沒有辦法可以防範這種GUID攻擊方法(我想寫的,與公司aspx無關)
: 例如在我的網站下以 index.php 為登入頁面 (以 www.example.com 為例)
: 網站之下的分支都得登入後才能觀看/操作的
: 即使直接輸入 www.example.com/test/test.php
: 1. 未經授權存取
: 直接轉到 www.example.com 待使用者輸入帳號後
: 在某個 iframe 顯示 www.example.com/test/test.php 的內容
: 2. 有授權存取
: 直接轉到 www.example.com 並在某個 iframe 顯示該內容
: 最後一個問題 cookie 該怎麼寫QQ
: 在此請教了
這是我A網頁帶POST過來的驗證程式
<?php
$id=$_POST['id'];
$email=$_POST['email'];
$checkcode=$_POST['checkcode'];
if(strtolower($checkcode)!=strtolower($_SESSION['reg_num_check']))
{
echo '<meta http-equiv="content-type" content="text/html;
charset=utf-8"><script>alert("Validate Code Error");history.go(-1);</script>';
exit;
}
if($id!=''&&$email!=''){
$sql="SELECT id FROM `".$_SiteGLOBAL['dbtable']."`.`register` WHERE
id='".$id."' AND email='".$email."'";
$result=mysql_query($sql);
list($id)=mysql_fetch_row($result);
if(empty($id)){//查無資料
echo '<meta http-equiv="content-type" content="text/html;
charset=utf-8"><script>alert("ID or E-mail Error");history.go(-1);</script>';
exit;
}else{
$_SESSION['login_reg']=$id;//紀錄session
header('location:../user.php');//到下一頁
exit;
}
}else{
echo '<meta http-equiv="content-type" content="text/html;
charset=utf-8"><script>alert("ID or E-mail Error");history.go(-1);</script>';
exit;
}
?>
你先看懂GALINE大大在講什麼,在回頭看我這段程式碼
至於我這一段,簡單的講就是
叫使用者輸入ID跟Email然後丟到資料庫去查詢
有查到就
$_SESSION['login_reg']=$id;//把查到的ID紀錄成session
header('location:../user.php');//到下一頁
exit;
沒查到就
跳出錯誤訊息"ID or E-mail Error"