我在'functions'目錄下的NodeJS靜態HTML網站中有函數。這些函數達到像「登錄」這樣的終點,並通過XMLHTTPRequest獲取'/ user'信息。nodejs:允許客戶端使用腳本,但隱藏最終用戶的腳本
我不喜歡將終端用戶公開給我的想法。是否有可能把我的「功能」目錄我的靜態html目錄以外的,如:
HTML
index.html
FUNCTIONS
my_func.js
尚未從index.html的訪問我的功能HTML這樣的:
<script type="text/javascript" src="../FUNCTIONS/my_func.js"></script>
我已經知道這是不可能,因爲我試過這個,我只是得到一個404的:www.mywebsite.com/functions/my_func.js
但真的,這不是網址,因爲沒有網址,因爲我不想要將我的'功能'目錄保存在可公開訪問的URL中。
我嘗試這樣做:How do I prevent Node.js/Express serving up my application's source code?
創建一個「路線」,這樣,如果「功能」像我的路看到:
<script type="text/javascript" src="../functions/my_func.js"></script>
它應該重定向到一個目錄外公開託管HTML上的NodeJS,但它沒有工作
我也沒有在NGINX級別:https://serverfault.com/questions/310124/nginx-redirect-url-containing-php
if ($request_uri ~ .*.functions.*)
{
return 410;
}
這可以防止在函數目錄中看到js(當我將FUNCTIONS目錄放在HTML目錄中時)。但是,這也會阻止index.html也能夠加載js函數。
你爲什麼要隱藏你的API函數?如果用戶使用您的網頁,他可以輕鬆地在各種瀏覽器的網絡選項卡中檢查api端點呼叫,那麼您的api本身應該是安全的,通過令牌或會話 – DZDomi
偏執狂我想。並且好奇是否有更好的方法來至少讓它看起來更難以看到端點以及它們如何被使用。還有腳本使用像sessionStorage這樣的東西,我知道這應該是安全的,但我不喜歡暴露變量名稱的想法,如果可能 – user1709076
我可以理解你,但用戶需要連接到你的API,所以瀏覽器,例如即使您將其隱藏在JavaScript代碼等中,最終用戶也會始終看到對您的端點提出的請求。我同意@rsp – DZDomi