Re: [請益] PHP驗證帳號的方式

作者: mitsui0309 (比琪老師粉嫩嫩唷~~)   2016-06-01 02:16:07
※ 引述《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"
作者: tkdmaf (皮皮快跑)   2016-06-01 09:43:00
sql injection??????
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-06-01 11:43:00
injection.用了 " 何必再用 .
作者: marcoyan (日本滑雪募集中)   2016-06-06 11:09:00
不太懂為什麼用了"不能用. ?這有關係嗎@@
作者: vu0ru043 (麥茶)   2016-06-06 11:35:00
是不是Sql那段 直接用雙引號把字串跟變數括入就好因為雙引號內的變數會輸出變數的值

Links booklink

Contact Us: admin [ a t ] ucptt.com