2011-07-21 38 views
3

我正在PHP + Mysql中開發一個遊戲,它是在一個共享的虛擬主機中託管的。如何在緊急情況下阻止來自站點的所有用戶?

我非常關注安全問題,因爲在遊戲中很常見的是有些人試圖欺騙或破壞遊戲。

到現在爲止,我已經測試了XSS,SQL注入,檢查文件夾的權限,安全密碼,......但是,我知道我的限制,並且我希望在出現意外情況時做好準備(我不知道,也許我不知道的一些技術,或者我錯過的一張支票,一個猜到的密碼......)

如果我意識到了這一點,我的第一個動作,我認爲應該阻止訪問所有用戶,隔離該網站,然後檢查並修復該錯誤。 (這只是一個免費的遊戲,我認爲我可以負擔得起這個停機時間)。我怎樣才能做到這一點?

+0

這的確是一個服務器的配置問題。屬於服務器故障。 –

回答

3

您可以.htaccess文件在Web服務器的根目錄與內容:

Order Deny,Allow 
Deny from all 
Allow from 192.168.1.1 -- here is your IP 

這將阻止除來自上述IP

+0

一個更好的解決方案是在web服務器配置中指定一個自動預先配置 - 這使您可以選擇性地響應限制對非靜態內容的訪問,將其重定向到阻塞的靜態頁面 – symcbean

0

停止Web服務器。將其配置爲只在127.0.0.1上進行監聽(它通常監聽0.0.0.0這意味着它接受來自所有人的連接)並啓動它。這樣遊戲只能從Web服務器的主機訪問。

+0

問題是,這是一個典型的共享虛擬主機。我無法阻止它。 –

0

我想說的請求都有一個.htaccess文件準備好了,但不是在如果你把它放到你的web目錄中,它會將所有請求重定向到類似於mydomain.com/downformaintenance.php

0

最簡單的方法是告訴你的網絡服務器不再爲這個站點提供任何東西。使用Apache,你可以通過.htaccess文件實現:

Order Deny,Allow 
Deny from all 

第二種方法是將它實現到你的網站。例如。在您的調度腳本,你首先檢查文件是否存在等,然後簡單地退出:

if(file_exists(__DIR__ . '/close_it')) { 
    exit; 
} 

HTH

相關問題