2011-06-03 37 views
3

在我的網站上,我有一個功能,人們可以通過輸入電子郵件地址註冊簡報。我使用php中的電子郵件地址,驗證其完整性,然後將其寫入txt文件,例如emailaddresses.txt。我注意到,如果我瀏覽www.mywebsite.com/emailaddresses.txt,可以看到電子郵件地址。我使用Options -indexes設置了一個htaccess文件。我的網站用戶可以發現這個webaddress嗎?

如果emailaddresses.txt是一個不起眼的文件名,很長,用隨機字符是安全的暫時?

+2

如果您剛將它從公用文件夾中移出,會更好。 – JohnP 2011-06-03 09:44:41

+0

如何修改我的代碼來執行此操作?這裏是我的PHP代碼的相關行:fwrite(fopen(emaillist.txt,'a +'),$ delimiter。$ email) – James 2011-06-03 10:03:35

+0

你只需要給它一個超出webroot的路徑,然後適當修改路徑。 – JohnP 2011-06-03 10:04:46

回答

2

您可以使用fwrite成,是不是到Web服務器訪問的位置 - 這將是更安全的

1

沒有 - 你需要斷然防止您的服務器提供服務的文件,甚至更好寫到服務器範圍之外的位置。你的htaccess文件很可能是錯誤的。您應該上傳相應的部分以供查看。

0

的-Indexes當用戶進入無索引的文件的目錄只是停止服務器從列表中的文件。

如果你想寫入文件,確保它的網站根目錄外。然後你將能夠訪問它,但你的用戶將永遠無法看到它。

如果你在一個文件中存儲這些數據
+0

嗨,謝謝你的回覆。 'webroot之外'是什麼意思?這是我的PHP代碼的相關行:fwrite(fopen(emaillist.txt,'a +'),$ delimiter。$ email); – James 2011-06-03 09:52:17

0

,把訪問限制到地方,拒絕訪問該文件未經授權的用戶...

+0

我該如何做到這一點?請告知 – James 2011-06-03 09:57:20

+0

明顯的方法:將文件放置在網絡可訪問路徑之外。如果它必須位於Web訪問路徑中,則可以使用htaccess來限制訪問,例如通過此規則 命令允許,否認 拒絕全部 DarkSquirrel42 2011-06-03 10:40:55

4

Security by obscurityIS NOT安全。

將您的emailaddresses.txt放到您的webroot之外。

+0

嗨,感謝您的回覆。 'webroot之外'是什麼意思?這是我的PHP代碼的相關行:fwrite(fopen(emaillist.txt,'a +'),$ delimiter。$ email) – James 2011-06-03 09:58:12

0

正如其他人所說,寫你的根目錄以外(即不向公衆開放)。

試試這個:fwrite(fopen('../emaillist.txt', 'a+'), $delimiter . $email);(注意../前emaillist.txt)。這會將電子郵件文件寫入您的webroot上方的ONE目錄,即,而不是/home/user/public_html/emaillist.txt,它將位於/home/user/emaillist.txt - 無法通過網絡訪問,但您將能夠通過FTP查看它。

相關問題