2016-12-03 24 views
0

我在我的網上商店銷售電子書。當買家已經完成,他得到的電子郵件,像這樣的下載鏈接:如何隱藏爬蟲和黑客服務器上的內容

http://www.my_domain.com/media/books/b476de3dd02e72a727bb762371d6bbad.pdf 

每個文件都有一個神祕的名稱,如b476de3dd02e72a727bb762371d6bbad以防止用戶猜測的名字,而不是my_book_name.pdf

robots.txt我有以下的,以防止爬蟲抓取它,並顯​​示在搜索結果中:

User-agent: * 
Disallow: /media/books/ 

我知道,履帶可以音符,但不得

有沒有人知道更好的解決方案?通常的做法是什麼?

P.S.我不想強制用戶輸入密碼或以此來訪問文件。

回答

2

如果我理解正確,您的網站有一個主要的訪問控制問題。如果一個用戶購買電子書,然後在社交媒體上分享鏈接,該怎麼辦?

您需要確保下載文件的用戶實際上是爲其付費的用戶。換句話說,你需要認證。不應該直接在服務器上引用文件,因爲這樣你就無法實現授權。

雖然我認爲使用用戶名/密碼登錄網上商店以下載您購買的任何數字商品是相當常見的。不過,我明白你不想這樣做,但你仍然需要驗證你的用戶。

你可以做的一件事是當有人購買某物時,你可以創建一個加密隨機標記(即一個大的隨機字符串)並將其存儲在數據庫中,鏈接到可以使用標記下載的文件,以及如果有用戶也是用戶。應該有一個時間戳來限制令牌使用的時間。

然後你可以有一個終端,如/media/books/download/<<token>>爲用戶獲取文件(或/media/books/download/<<token>>/<<filename>>允許多個文件具有相同的標記)。關鍵是,購買同一本書的每個用戶都會有所不同,而且這也會受到時間限制。您可以限制允許的下載次數,或者進行監控以檢測是否有許多多客戶端IP地址等使用了令牌,以嘗試發現欺詐行爲。這不會是完美的,但也許你可以阻止大多數攻擊者,除非你賣的是非常特別的書。 :)但是,如果你沒有做到這一切,它仍然會比直接鏈接到文件好得多。

這也將天生解決搜索引擎問題。

0

一個更好的選擇選項是在您正在討論的這些文件的目錄中放置的.htaccess文件中使用以下內容。

<FilesMatch ".pdf$"> 
Header set X-Robots-Tag "index, noarchive, nosnippet" 
</FilesMatch> 

robots.txt文件只包含所謂的履帶式指令,告訴搜索引擎,通過他們的用戶代理:,他們是不允許使用不允許去鑑定:與在那裏他們可以(而且應該)請使用Allow :,然後將它們指向Sitemap :.

+0

感謝您的回答。它究竟是什麼? – user7128548