2015-05-31 64 views
0

我製作了一個我可以銷售的CSS模板。該CSS託管在我的服務器上。我只希望網站的付費用戶能夠訪問此文件,所以我想到了一個php文件,它只有在數組中存在url時纔會回顯css。只允許來自某個URL的請求

<?php 

header("Content-type: text/css"); 

$allowedUrls = ['google.com', 'facebook.com']; 

$thisURL = "http://urlfromrequester.com"; //??? 
$thisURL = str_ireplace('www.', '', $thisURL); 
$thisURL = (parse_url($thisURL, PHP_URL_HOST)); 

foreach ($allowedUrls as $url) { 
    if ($url == $thisURL) { 
     $css = file_get_contents('theCSSFile.css'); 
    } else { 
     $css = file_get_contents('FileWithLinkToBuyPage.css'); 
    } 
} 

echo($css); 

這是一種安全的方式,只有當主機購買css文件時纔打印css。但是我怎樣才能得到請求者的URL呢?

人誰買這個文件會使用這樣的: <link rel="stylesheet" type="text/css" href="http://domain.com/checkLicence.php">

感謝

+0

問題是您的CSS必須發送到網站訪問者的客戶端(瀏覽器),因此它可以是任何IP地址。這是解釋CSS的瀏覽器,而不是服務器。所以我沒有看到阻止CSS文件的點... 在出售模板的網站上,即使縮小了CSS,也可以輕鬆獲得。 –

+0

我建議用戶將文件作爲.css文件放下,並讓他們根據您的許可自行託管它。 –

回答

0

您可以使用:

$_SERVER['HTTP_REFERER']; 

考慮到雖然考慮,該轉診地址被設置用戶代理。並非所有的用戶代理都會設置它,有些提供了將HTTP_REFERER修改爲功能的功能。 總之,它不能真正被信任。

相關問題