javascript - Ajax 如何防止資料盜用

來源:互聯網
上載者:User
前端打算用 ajax 來擷取資料,可是怕辛辛苦苦輸入的資料,被別人通過分析 ajax 返回的資料直接移花接木盜走。

是通過驗證的防止防止這種行為的發生嗎?可是目前網站是不需要註冊即可使用,所以應該如何防止?

謝謝。

大概就是:

前端 -> 通過 ajax 擷取資料 -> 後台 -> 返回資料

如何防止別人偽造 ajax 擷取資料

回複內容:

前端打算用 ajax 來擷取資料,可是怕辛辛苦苦輸入的資料,被別人通過分析 ajax 返回的資料直接移花接木盜走。

是通過驗證的防止防止這種行為的發生嗎?可是目前網站是不需要註冊即可使用,所以應該如何防止?

謝謝。

大概就是:

前端 -> 通過 ajax 擷取資料 -> 後台 -> 返回資料

如何防止別人偽造 ajax 擷取資料

這麼說吧,你的目的就是提供給某些人一些資料,那麼不讓這些人抓你的資料就違反你最初的目的
這就像 我給你十塊錢,我又不想讓你拿這十塊錢

我之前也是在這上面糾結過,採取種種措施,最後達到的效果不過是增大抓取的難度而已
這就和用戶端加密一樣,無論你怎麼加密混淆,前提都是建立在一個可信任的通道上的,當通道不可信時,啥都沒用

你網站不需要登入,那就預設了所有內容是免費提供給所有人的,直接瀏覽資料和調用 API 擷取資料有區別麼?
就算不提供 Ajax , 從網頁上直接爬走是一樣的啊,騷年.

“目前網站是不需要註冊即可使用,所以應該如何防止”。
“別人偽造ajax擷取資料”

首先你得知道如何區分 所謂的“別人”。但看問題裡並沒有說明。

看樓主的需求,應該是一種內容型的網站,需求應該就是怕別人剽竊自己的內容。
做任何事情都有成本,一個安全原則是提高對方的作案成本,付出的比得到的多很多,以達到讓對方放棄作案的目的。

有個比較常見的方法是,將你們的內容(資料)在後端產生帶浮水印的圖片,ajax載入。至少別人不能直接用。

如果不進行身份驗證,怎樣防範都是徒勞的。因爲想要阻止「別人」,首先得識別「別人」。

身份驗證可以不是顯式的登錄,而是 Google 式的追蹤。要做到即便換瀏覽器換 IP 清空瀏覽器緩存、cookies 照樣能識別同一用戶。

能做到這些,再限制調用數據的頻率,對可疑者強制輸入驗證碼,基本就是 Twitter、Google 這些大公司的水準了。

樓主所說的這個資料終究要在某些合法頁面被顯示的,所以用什麼方法也不能避免被盜用。只是盜用的成本問題

我想沒有好辦法。如果想拿到,是肯定能拿到的。

1、最上層顯示頁面的時候後端輸出一個唯一的簽名;
2、Ajax 從前端發起請求到後端擷取資料時需傳遞效驗參數,後端再效驗簽名
不知道這個思路能否滿足你的需求(不過這個思路的簽名依舊可以被獲得)

簡單的話可以在每個ajax請求裡加個sessionID。後端根據 sessionID 判斷是否返回資料。但是沒有辦法完全避免爬蟲來抓資料。

oauth2

每次發起ajax請求的時候驗證一個token (加密串)即可

伺服器判斷referer, 如果referer的網域名稱是自己的網域名稱, 就返回, 不然就不返回。

Access-Control-Allow-Origin這個header就夠了

網頁是公開的,資料就是公開的,任何驗證都是徒勞,都是可以被 robot 模仿的。

可能唯一有點作用的,就是對資料進行處理,比如小說網站就不傳文字,
而是傳由文字產生的圖片,這是一個可以參考的例子。

伺服器產生一個token(比如 md5(key+ip+date),這個規則只有管理員知道)與html一起下發給使用者,然後由使用者瀏覽器發起ajax請求,同時附加之前伺服器產生的token,伺服器判斷來源網站網域名稱+token正確後給使用者發回資料。
之前為了防止投票作弊器,想到了這個辦法。

一句話,只要是能看到的,就是可以拿到的,所以不用糾結了

這是可以徹底解決的,給大家一個思路,就是把檔案放在瀏覽者的內存,至於瀏覽器緩存方面,可以利用overwrite緩存。讓盜竊者得到一個無用的檔案,您還可以在檔案內指出他由哪個IP取得這個檔案,嚇唬他們一下,讓他們以後對偷竊沒信心。我以前在香港寫了很多程式,時而會被人偷了,所以研究了這個方法,希望大家不要把辛苦工作得來的成果讓小人們奪去。

我看到有個叫做_影xx_的,在這裡罵人,佩服喔,他媽媽的辛辛苦苦湊大他,卻連幾行字都理解不到,大家說他懂幹啥呢?

什麼許可權呀,許可證呀,給訪問者種種難度只是排斥而已,做了前端就是想讓所有人看,像_影xx_這種無能之輩都能看。這樣才有趣,大家說對不對?
後端誰都不能看,這是對智慧財產權的保護。調用的src可以臨時產生,也可以產生多次,也可以臨時移除,緩衝由我來控制,明白嗎?在不明白就發郵件給我,我私下詳細告訴你。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.