我已經使用PHP創建了一個應用程序,並且我將它賣給我的本地市場。我將親自去他們的位置安裝/配置Apache & MySQL以及安裝我自己的代碼。從PHP獲取計算機唯一ID
我想要一個安全系統,這樣如果有人試圖將我的代碼複製到未經授權的機器上,它將不會運行。
我知道沒有人可以阻止逆向工程應用程序。即使.exe(二進制)文件也被破解,任何人都可以使用PHP(源代碼)。
在我國,這些反向工程師們真的很難找到,所以我想提出像最小的安全選項:
1)創建類(比方說,Navigation
)識別,如CPU ID,電腦名稱的系統信息或硬件ID的任意組合來創建一個UNIQUE_ID,並與我給定的UNIQUE_ID(向我銷售該應用程序的個人)進行匹配。如果它有效,它將返回導航菜單。否則,它只會破壞數據庫,並制止通過拋出一個異常的執行,也許像:
class Navigation {
public function d() {
return current system UNIQUE_ID;
}
public function get() {
$a = file_get_contents('hash');
$c = $this->d();
if (crypt($c) != $a) {
//destory database
throw new Exception('');
} else {
return "<ul><li><a>home</a></li></ul>"; //navigation menu
}
}
}
2)然後在安裝過程中,我會改變系統UNIQUE_ID在「哈希」文件,創建一個對象,並在的header.php
(install.php了)
<?php
$a=new Navigation;
$out=serialize($a);
file_put_contents('nav.obj', $out);
3)(其被包括在每一個文件):將其保存到一個文件(nav.obj)
<?php
$menu=file_get_contents('nav.obj');
$menu=unserialize($a);
echo $menu->get();
?>
我知道這種方法並不是完全的證據,但我確信大約60%的PHP開發人員無法破解它!
現在我只需要獲得當前的系統UNIQUE_ID。
DOMAIN呢?將其設置爲應該工作的域,並對其進行散列檢查。 – Robert
有沒有這樣的事情作爲一個系統獨特ID – Anigel
現在,當你公開發布這些,60%將下降到10%... –