国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

javascript - PHP cURL或者類似的客戶端請求不算跨域,會不會不安全?有什么防范措施?
PHP中文網(wǎng)
PHP中文網(wǎng) 2017-04-10 17:17:38
0
2
732

之前我以為PHP cURL模擬請求也會有跨域限制的。

疑問

在之前設計接口的時候,需要權限訪問的敏感數(shù)據(jù)(例如需要登錄后查看的個人數(shù)據(jù))。我是會做token檢測的。

但是其他的普通接口可以直接獲取的,只是添加了跨域頭,防止跨域調用,但是后面發(fā)現(xiàn),通過PHP cURL是能調用成功的。后面看了eechen的回答。如下:

同源策略防止跨域是瀏覽器中的安全機制.而PHP的cURL可以看做一個命令行下的瀏覽器(客戶端),不受任何限制,就像你用file_get_contents下載互聯(lián)網(wǎng)上的東西一樣隨心所欲, 來源。

感覺這樣設計會不會有點不合理?JS Ajax有跨域限制,PHP cURL這種形式的則沒有跨域限制。為什么當時確定跨域限制的時候,為什么不把PHP cURL形式的也作為跨域限制?

那這樣的形式又應該如何去防止跨域調用呢?

解決方案

  1. 之前想做網(wǎng)易云客戶端的時候,有看過網(wǎng)易云音樂的接口,是通過CSRF_TOKEN防止跨域調用的。
    PS:話說這種方案,貌似能夠通過爬網(wǎng)頁獲取CSRF_TOKEN,再進行跨域調用吧?

  2. 另外,還有什么方案能夠解決這個問題嗎?

期待大家的解答,謝謝!

============ 10-27 15:51 ==============

Sorry,我理解錯了...我以為是PHP cURL做了什么特殊處理。謝謝南小鳥的回答,其實就是相當于直接訪問指定URL,自然不會產生跨域問題...

那如果希望我的接口不能被外界訪問呢?

在內網(wǎng)

這種應該就不需要設置什么了。

在外網(wǎng)

  1. 設置CSRF_TOKEN,但我查了一些CSRF_TOKEN的資料,貌似CSRF_TOKEN主要是為了防止跨站請求偽造,并不是用來做這個的...防止攜帶你的授權信息cookie:SESSIONID進行攻擊。

  2. 檢查REFER。

  3. 還有什么方法呢?

目前我打算用JWT生成Token,每次,請求需要帶上Token(帶上用戶信息,進行權限控制等)。

感覺留坑了,Sorry。也感謝Gforce的回答。

PHP中文網(wǎng)
PHP中文網(wǎng)

認證高級PHP講師

reply all(2)
小葫蘆

php curl 就相當于你瀏覽器直接打開一個網(wǎng)址,這樣當然不算跨域了

洪濤

可以作一個接口驗證,比如利用 JWT

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template