作者LaPass (LaPass)
看板PHP
標題Re: [請益] POST和GET傳值問題!?
時間Wed Jan 14 12:25:45 2015
※ 引述《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://webptt.com/m.aspx?n=bbs/PHP/M.1421209548.A.F75.html
1F:→ KawasumiMai: 是說有點好奇,PHP可以驗證提出要求的來源嗎? 01/14 15:03
2F:→ KawasumiMai: 例如如果直接連結php,來源應該是外部或使用者方 01/14 15:04
3F:→ KawasumiMai: 但如果是自己網站的Ajax,來源應該是同網域 01/14 15:05
4F:→ KawasumiMai: 有辦法對此做出驗證嗎? 01/14 15:05
5F:推 onininon: $_SERVER['HTTP_REFERER'] 雖然可以偽造 01/14 15:24
6F:→ KawasumiMai: 補充發問,如果可以偽造,但是畢竟使用PHP傳入POST值 01/14 20:52
7F:→ KawasumiMai: 的時候不包含這個資訊,這個變數是PHP自行判定的,那 01/14 20:53
8F:→ KawasumiMai: 麼執行起來不合預期,看不到php code的情況下應該不 01/14 20:53
9F:→ KawasumiMai: 曉得是因為這個判定擋掉的吧?還是有方法知道php多判 01/14 20:54
10F:→ KawasumiMai: 定了這個東西?(應該不可能),這樣安全性應該是夠的? 01/14 20:54
11F:→ Darkland: 你可能不太清楚瀏覽器除了 post 以外還傳了多少東西? 01/14 22:39
12F:→ LaPass: 打開瀏覽器的debug工具都看的到,而且都可以改 01/14 23:12
13F:→ mmis1000: 真的要安全就放session吧,client端來的都完全不可信 01/15 03:56
14F:推 KawasumiMai: 痾= =不是不清楚除了Post以外還有多傳東西,是想問 01/15 10:09
15F:→ KawasumiMai: 因為這個驗證是PHP內的code,在不知道這份code的情況 01/15 10:10
16F:→ KawasumiMai: 不知道PHP有多驗證什麼東西,應該不曉得需要偽造的目 01/15 10:11
17F:→ KawasumiMai: 標是什麼? 是說有經驗的人可能會知道就是了.... 01/15 10:12
18F:→ MOONRAKER: 他是http protocol規定的 每個人也知道 01/15 10:20
19F:→ MOONRAKER: 不知道的人可以不用搞attack的事情 01/15 10:21
20F:→ gpmm: CSRF/XSRF 攻防戰啊,掛 token 多少可以提供一點防禦力 :p 01/17 02:49