看板 Ajax 關於我們 聯絡資訊
想請問一下,如果在http的頁面下有個Login form要post到https的話,有沒有比較安全 的方法呢?估狗後發現雖然是同一個Domain name但http跟https還是算不同往域,因此沒 辦法傳遞資料,如果用JSONP是有辦法做跨域取得資料,但getJson()似乎只能用GET來實 做...然而這又是Login form用GET似乎不妥..不知道各位前輩有沒有碰過類似的問題呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 182.235.81.30
mrbigmouth:jQuery直接用ajax啊 type用post dataType用jsonp 10/29 10:47
mrbigmouth:雖然post比get安全這點其實只是錯覺 10/29 10:47
iverson2007:是啊..但至少post不會留下browser history吧.. 10/29 11:51
iverson2007:晚點再來試試看大大說的方法 謝謝! 10/29 11:51
iverson2007:剛剛查過了jsonp好像只能用GET 10/29 11:53
mrbigmouth:呃 對 我錯了XD 10/29 11:54
mrbigmouth:剛頭昏 其實jsonp就是放個script tag...那就只能get 10/29 11:54
mrbigmouth:話說 哪家的瀏覽器會把你的ajax url也放history啊? 10/29 11:55
iverson2007:也是..是ajax 但這樣做不會有安全性問題嗎? 10/29 11:57
mrbigmouth:都ssl了 如果還有安全性問題 也不會是你弄成post就能 10/29 11:57
mrbigmouth:解決掉的.... 10/29 11:57
iverson2007:了解...所以就這樣的解法是可行的囉@@? 10/29 11:58
chrisQQ:這樣有做跟沒做一樣吧 XD 重點就是 http 這段送出一樣沒過 10/29 11:59
chrisQQ:ssl 加密啊... 10/29 11:59
mrbigmouth:樓上一語驚醒夢中人...你到底要ssl傳遞什麼資訊啊? 10/29 12:04
mrbigmouth:包含帳號密碼....!? 10/29 12:04
mrbigmouth:那有個比較麻煩的做法....做一個iframe(同網域) 10/29 12:04
mrbigmouth:裡面放form action設https,原頁面登入後控制該form 10/29 12:05
mrbigmouth:去做填帳號密碼跟送出的動作 10/29 12:05
iverson2007:嗯 就Login Form填完帳密後到AJAX作驗證動作 10/29 12:10
iverson2007:我也有查到iframe的做法 看來只能用iframe解了 10/29 12:11
iverson2007:但缺點就是我的login popup 沒辦法及時傳回驗證狀態了 10/29 12:14
mrbigmouth:popup? 你都popup了為什麼還要用iframe啊? 10/29 12:37
mrbigmouth:應該說...都popup了,就不必ajax直接form submit了吧? 10/29 12:37
mrbigmouth:而且不管是popup還是iframe都有辦法即時回傳驗證狀態 10/29 12:39
mrbigmouth:在驗證完畢後 導向至能操縱opener/parent的頁面 10/29 12:40
mrbigmouth:再從該導向網頁以script對opener/parent進行操作即可 10/29 12:40
iverson2007:但popup在http的頁面下而檢查的Ajax url 在https 10/29 13:09
danny8376:ajax的那端加個Crossdomain的header吧 10/29 14:10
mrbigmouth:Crossdomain header的作法不是全瀏覽器通吃喔 10/29 15:24
mrbigmouth:而且在IE client需要用別的ajax request方法才可以過 10/29 15:24
danny8376:超想無視IE6~9 XD 最好的方法還是全網頁https啦XD 10/29 16:53
danny8376:話說 就算iframe也會有http != https的問題吧? 10/29 17:05
mrbigmouth:原iframe(http) iframe裡的form post到(https) 10/29 17:12
mrbigmouth:sever驗證出結果後 把網頁導到http 10/29 17:12
mrbigmouth:然後該http頁面根據結果使用javascript把結果傳parent 10/29 17:14
mrbigmouth:使用popup頁框的話也是完全相同的流程 10/29 17:15
mrbigmouth:現在的問題是原po明明已經用了popup不知為啥還在popup 10/29 17:15
mrbigmouth:做ajax...而不是直接在popup裡放form post到https 10/29 17:15
danny8376:對齁XD 是說HTTPS的GET也沒不安全啊 server的log記得 10/29 17:16
danny8376:過濾掉就是XDD 10/29 17:17
danny8376:這是好問題XD popup就能直接form去POST了 OwO 10/29 17:18
danny8376:不過有可能popup本身是有額外功能的頁面? 10/29 17:19
danny8376:所以popup本身不能跳開? 10/29 17:19
iverson2007:當初是想說如果有錯誤訊息的話直接回傳回popup上 10/29 21:14
iverson2007:所以才做了AJAX去驗證是否是可登入的使用者,跟據AJAX 10/29 21:15
iverson2007:傳回來的數據再判斷如果可登入就導向登入頁面,否則 10/29 21:15
iverson2007:在popup秀出錯誤訊息,但是這樣的做法就是資料有進 10/29 21:16
iverson2007:AJAX URL作驗證 但是訊息沒回傳 所以即便成功了也毫無 10/29 21:17
iverson2007:反應,只有當POPUP也在https下才能成功,只要POPUP在 10/29 21:18
iverson2007:Https下毫無反應..偏偏網頁有些頁面是http有些https.. 10/29 21:18
iverson2007:有試過直接在popup 用POST到https..但一樣只有驗證成 10/29 21:27
iverson2007:功的狀態下是正常,驗證失敗我自己寫的錯誤訊息也是無 10/29 21:27
iverson2007:法顯示就是了... 10/29 21:27
Fonger:YQL 10/30 17:54
iverson2007:感謝各位,最後還是選擇直接POST到HTTPS的做法了 11/10 11:02
joey770911:網路沒有絕對安全 11/21 12:33