-1

我有這樣的Javascript代碼,將搜索到名爲codes.txt如何防止直接查看.txt文件?

    $.get('codes.txt', function (contents) { 
 
         if (contents.includes($('#code').val())) { 
 
          validForm =true; 
 
         } else { 
 
          alert("Sorry!! That is not a valid code. Try again! Or email [email protected]"); 
 
          return false; 
 
         } 
 
        });

我想要的.htaccess,許可或任何技巧,使其只能由我的服務器使用和.txt文件直接不像http://mysite/codes.txt

我該怎麼做?

+1

只要您依賴於讀取客戶端上的文件內容,您就無法做到這一點。您必須將此端口移植到服務器上,以便只有搜索的術語纔會發送到服務器端,然後根據是否在文本文件中找到該術語,服務器端腳本會爲客戶端提供相應的響應 - 側面腳本。 – CBroe

+0

或者使用像firebase這樣的雲存儲服務 – charlietfl

回答

3

編輯您的.htaccess以便接受只有從AJAX訪問的閱讀文件。

<Files "code.txt"> 
    SetEnvIfNoCase X-Requested-With XMLHttpRequest ajax 
    Order Deny,Allow 
    Deny from all 
    Allow from env=ajax 
</Files> 
+0

我怎樣才能將它設置爲.txt文件? – user7727361

+0

最簡單的解決方案是創建一個像「config」這樣的文件夾,並在那裏放置你的文件codes.txt和.htaccess,上面的代碼比從文件夾「config」調用ajax,如:$ .get('config/codes.txt ',功能(內容){...} –

1

codes.txt公共目錄之外(或使用的.htaccess否認它的公共訪問),然後使用$.get打一個服務器片面的腳本返回文本文件的內容,而不是擊中文本文件本身。然後,您可以將安全性添加到服務器端腳本。 (用戶權限,CSRF保護等)