Re: [請益] POST和GET傳值問題!?

看板PHP作者 (LaPass)時間11年前 (2015/01/14 12:25), 編輯推噓2(2018)
留言20則, 7人參與, 最新討論串2/2 (看更多)
※ 引述《ahoo122002 (承讓)》之銘言: : 我想請問一個問題 : 就是我a.php 傳資料到 b.php 是用<a href=b.php?id=$id> : (不是用form method用POST) : b.php 用GET接收 : (可是很多人改網址,就改變結果,感覺不是很安全) : 是否有除了POST和GET : 有其他方式可傳值?? : 還是可以用硬體來解決這個問題!? 你要確保的是「這個值被看到有沒有問題」 以及「確認他傳的值有沒有問題」 而不是讓瀏覽的人看不到值 舉例來說: 像這種東西很顯然有問題 b.php?username=JONE&passwd=aa123 這就是屬於把不該傳的放到網址上去傳的狀況 另外像這種 b.php?id=3&op=edit 就要確認使用者有沒有編輯id=3的權限之類的 其他像是流覽、刪除的動作,也是同一種狀況 如果 id=3 是小明的照片,他設定為禁止外人瀏覽 那當別人進入這個頁面時,就該擋下來 (有些人寫程式沒檢查,這很糟糕) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.219.211 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1421209548.A.F75.html

01/14 15:03, , 1F
是說有點好奇,PHP可以驗證提出要求的來源嗎?
01/14 15:03, 1F

01/14 15:04, , 2F
例如如果直接連結php,來源應該是外部或使用者方
01/14 15:04, 2F

01/14 15:05, , 3F
但如果是自己網站的Ajax,來源應該是同網域
01/14 15:05, 3F

01/14 15:05, , 4F
有辦法對此做出驗證嗎?
01/14 15:05, 4F

01/14 15:24, , 5F
$_SERVER['HTTP_REFERER'] 雖然可以偽造
01/14 15:24, 5F

01/14 20:52, , 6F
補充發問,如果可以偽造,但是畢竟使用PHP傳入POST值
01/14 20:52, 6F

01/14 20:53, , 7F
的時候不包含這個資訊,這個變數是PHP自行判定的,那
01/14 20:53, 7F

01/14 20:53, , 8F
麼執行起來不合預期,看不到php code的情況下應該不
01/14 20:53, 8F

01/14 20:54, , 9F
曉得是因為這個判定擋掉的吧?還是有方法知道php多判
01/14 20:54, 9F

01/14 20:54, , 10F
定了這個東西?(應該不可能),這樣安全性應該是夠的?
01/14 20:54, 10F

01/14 22:39, , 11F
你可能不太清楚瀏覽器除了 post 以外還傳了多少東西?
01/14 22:39, 11F

01/14 23:12, , 12F
打開瀏覽器的debug工具都看的到,而且都可以改
01/14 23:12, 12F

01/15 03:56, , 13F
真的要安全就放session吧,client端來的都完全不可信
01/15 03:56, 13F

01/15 10:09, , 14F
痾= =不是不清楚除了Post以外還有多傳東西,是想問
01/15 10:09, 14F

01/15 10:10, , 15F
因為這個驗證是PHP內的code,在不知道這份code的情況
01/15 10:10, 15F

01/15 10:11, , 16F
不知道PHP有多驗證什麼東西,應該不曉得需要偽造的目
01/15 10:11, 16F

01/15 10:12, , 17F
標是什麼? 是說有經驗的人可能會知道就是了....
01/15 10:12, 17F

01/15 10:20, , 18F
他是http protocol規定的 每個人也知道
01/15 10:20, 18F

01/15 10:21, , 19F
不知道的人可以不用搞attack的事情
01/15 10:21, 19F

01/17 02:49, , 20F
CSRF/XSRF 攻防戰啊,掛 token 多少可以提供一點防禦力 :p
01/17 02:49, 20F
文章代碼(AID): #1KjU_Czr (PHP)
文章代碼(AID): #1KjU_Czr (PHP)