HTTP_REFERER和USER_AGENT很容易被欺騙。話雖如此,如果你想阻止熱鏈接,那麼HTTP_REFERER是一個很好的開始,它將它限制在你自己的應用程序中的調用。
與Apache mode_security
SecFilterSelective "HTTP_REFERER" "^[^\?]*mydomain\.com"
添加到上面的目錄與字體將拒絕來自其他網站的所有不符合標準的要求。
爲了獲得額外的安全性,當有人使用您的應用程序時,您在服務器上給他們一個會話(例如PHP),並在那裏存儲uniqueId。
<?PHP
// #header.php - in the head of the page that uses the font
// ...
if(!isset($_SESSION['uniqueId'])) {
$_SESSION['uniqueId'] = rand(pow(2,16), pow(2,31));
}
$uniqueId = $_SESSION['uniqueId'];
echo '<script type="text/javascript" src="http://foo.com/getFont.php?u='.$uniqueId.'"></script>';
?>
而且這是服務字體。
<?PHP
// #getFont.php - serve your fonts from here
// ...
if(!isset($_GET['u']) || !isset($_SESSION['uniqueId']) || $_SESSION['uniqueId']!=$_GET['u']) {
die('Bad Request');
}
// cat out the file contents here for the request font file
?>
然後,你指的是動態頁面的字體(比如getFont.php?UNIQUEID =富),你只有當他們unqiueId匹配會話返回的字體文件,否則,你認爲它是一種欺騙引用熱門鏈接。這與將文件放置在經過身份驗證的僅限用戶的目錄中基本相同,但只有在用戶登錄後才能使用,而上述方法只是要求用戶在加載字體之前加載頁面,以防止熱鏈接。
我投票結束這個問題作爲題外話題,因爲它是關於法律建議,而不是編程建議。 – durron597
@ durron597創建4年後,無論如何:D法律方面只是獎金問題。實際上它是關於技術方面的。我能做些什麼來使這個更清楚? – meo