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