我有一個JavaScript腳本,我想賣給我的客戶。問題是腳本無法進行現場更改,因此他們可以簡單地鏈接到腳本並獲得好處 - 它是Google Analytics的自動標記和轉換設置類型腳本,它已經進行了大量工作。只允許某些服務器/網站連接到腳本
有沒有辦法讓網站看到腳本?所以,如果一個人去那裏這將是403我嘗試使用htaccess以及從服務器IP,這當然沒有工作允許訪問...
我有一個JavaScript腳本,我想賣給我的客戶。問題是腳本無法進行現場更改,因此他們可以簡單地鏈接到腳本並獲得好處 - 它是Google Analytics的自動標記和轉換設置類型腳本,它已經進行了大量工作。只允許某些服務器/網站連接到腳本
有沒有辦法讓網站看到腳本?所以,如果一個人去那裏這將是403我嘗試使用htaccess以及從服務器IP,這當然沒有工作允許訪問...
難道你可能擁有的腳本?如果是這樣,您可以向客戶端發放訪問/ API密鑰,並通過簡單Web應用程序的密鑰身份驗證檢查來提供此密鑰。
否則,您可以與客戶端分享祕密,並將密鑰檢查合併到腳本中。 I've written a gist demonstrating javascript bitwise encoding,「鹽」的說法應該是你的共同祕密。您還應該壓縮/混淆腳本。
值得一提的是,後面的建議並不完全安全,這是對腳本的單個副本多少值得您付出代價的權衡,以及保護它的努力將花費您多少。
你的意思是如果代碼是由一個頁面請求被嵌入或在它之外,右者區分?
您可以依賴的唯一設置是http頭「Referer」。這樣你也可以限制你的腳本只包含在文檔上的域www.example1.com,但不是在www.example2.com。
下面是此頁面上的Google分析腳本的請求:
GET /ga.js HTTP/1.1
Host: www.google-analytics.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:21.0) Gecko/20100101 Firefox/21.0
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://stackoverflow.com/questions/16687926/allowing-only-certain-servers-websites-connect-to-script
Connection: keep-alive
但是,如果有人知道如何你的「安全檢查」的作品,他可以輕鬆地查看通過螢火蟲或其他開發工具的JS代碼,或者只是使用其他工具創建請求。所以,這根本不安全,但是,如果有的話,只是防止一些人在2秒內試圖獲得腳本。每個人都在努力嘗試。
你可以做的也是做一些模糊處理......儘可能讓代碼難以閱讀:) 這裏有一個鏈接,指向另一個使用這種技術來隱藏真正的惡意軟件的問題做:https://superuser.com/questions/418121/what-is-javascript-obfuscation-and-why-is-it-a-threat
「網站」和「人類」都沒有下載腳本,它總是一臺電腦。那臺計算機是執行腳本還是將它顯示給用戶,或者兩者都不是你的業務。換句話說,如果你讓這個腳本公開下載,人類可以看到它;沒有辦法繞過它。 – deceze
@deceze在DAC的安全模型,肯定,但也有要操作限制在執行嘿嘿:) –
@MonkeyFace有辦法來混淆一個腳本,並使用某種形式的鍵限制其使用的情況下,雖然這是一個疼痛。恕我直言,如果你與你的客戶分享你的代碼,我想你會發現人們會付錢給你使用;特別是如果他們喜歡它的話。支持原代碼的作者是很常見的。如果它非常有價值,你必須保持隱藏,那麼問題就不是微不足道的。 –