بعد ان تعرضت مجوعة من قوالبي الى القرصنة كان لا بد ان نبحث عن حل لهذه المشكلة.
سوف اعرض عليكم مجموعة من الحلول التي سوف تمنع اي شخص من الحصول على الكود الخاص بالقالب عن طريق (javascript & PHP)
لنبداء بحلول الجافاسكريبت:
1- اعادة تحويل اللص:
var arrayName = ["host", "location", "
http://yaqutlab.com/thief/t... ", "href", "themes.yaqutlab.com"];
function checkURL(e) {
var t = window[arrayName[1]][arrayName[0]];
return e != t ? window[arrayName[1]] = arrayName[2] + window[arrayName[1]][arrayName[3]] : void 0
}
checkURL(arrayName[4]);
من خلال هذا الكود سوف نقوم بتحويل اللص الى صفحة من اختيارنا في حال لم يفتح القالب من خلال موقعنا قم بستبدال هذا الرابط:
http://yaqutlab.com/thief/t...برابط الصفحة التي تريد ان تقوم بتحويل المستخدم لها. نحن نقوم بتحويل المستخدم الى صفحة php قبل تحويله الى صفحة العرض كي نقوم بتسجيل الرابط الذي جاء منه.
نستقبل الرابط عن طريق
$_GET['url'];
نقوم بتخذينه وبعدها تحويله الى هذه الصفحة
http://yaqutlab.com/thiefوايضا قم بستبدال هذا الرابط:
themes.yaqutlab.com
برابط الموقع الخاص بك (الذي سوف تعرض القالب عليه)
هذه الطريقة من صنع @arabyami
2- منع المستخدم من حفظ القالب وعرض الـ (source code & inspect element)
تحتاج الى jquery
$(document).keydown(function(e){
if( e.which === 73 && e.ctrlKey && e.shiftKey ){
return false; // Ctrl+Shift+I
} else if( e.which === 74 && e.ctrlKey && e.shiftKey ){
return false; // Ctrl+Shift+J
} else if( e.which === 85 && e.ctrlKey ){
return false; // Ctrl+U
} else if( e.which === 83 && e.ctrlKey ){
return false; // Ctrl+S
} else if( e.which === 123 ){
return false; // F12
}
});
وايضا سوف نمنعه من استعمال الزر الايمن للماوس:
$(document).bind('contextmenu', function(e) {
return false;
});
كانت هذه حلول الجافا سكريبت ولكنها لا تحل المشكلة بشكل جزري (قد يقوم اللص بإيقاف الجافاسكريبت في المتصفح)
والان جاء دور الـ PHP
لنبداء بالكود وبعدها الشرح:
<?php
session_start();
$token_name = 'Hussam3bd'; // Enter your token name
function SessionPut($name, $value) {
return $_SESSION[$name] = $value;
}
function SessionExists($name){
return (isset($_SESSION[$name])) ? true : false;
}
function SessionGet($name){
return $_SESSION[$name];
}
function SessionDelete($name){
if (SessionExists($name))
unset($_SESSION[$name]);
}
function TokenGenerate() {
global $token_name;
return SessionPut( $token_name, md5(uniqid()) );
}
function TokenCheck($token){
global $token_name;
if (SessionExists($token_name) && $token === SessionGet($token_name)) {
SessionDelete($token_name);
return true;
}
return false;
}
?>
قم بحفظ هذا الكود في ملف php سوف احفظه باسم (init.php)
تعتمد هذه الطريقة على التحقق من Token المرسل للقالب عن طريق دالة TokenCheck اذا عادت لنا بـ true سوف نقوم باكمال تحميل الصفحة واذا عادة بـ false سوف نقوم باقاف القالب
الاستعمال:
سوف نقوم بعمل صفحة بها iframe يرسل قيمة الـ token الى صفحة index.php ولنفرض انها صفحة القالب
يتم توليد الـ token عن طريق دالة TokenGenerate
محتوى صفحة الـ iframe:
<?php require_once 'init.php'; ?>
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<title>موقعي</title>
<style type="text/css">
body {
margin: 0;
}
iframe {
display: block;
border: none;
height: 100vh;
width: 100vw;
}
</style>
</head>
<body>
<iframe src="index.php?token=<?php echo TokenGenerate() ?>"></iframe>
</body>
</html>
لا تنسى استدعاء ملف init.php في كل صفحة تريد استعمال هذه الطريقة بها
<?php require_once 'init.php'; ?>
والان في صفحة index.php سوف نقوم بستقبال قيمة الـ token والتحقوق منها
<?php
require_once 'init.php';
// جلب محتوى الـ token
$token = isset($_GET['token']) ? $_GET['token'] : null;
// التحقق من token
if (!TokenCheck($token)) {
die('غير مصرح لك بالدخول'); exit(); // الامر الذي سوف ينفذ ان عادة الدالة ب false
}
// ن لم تعد الدالة ب false سوف يتم اكمال تحميل الصفحة واظهار القالب
?>
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<title>حسام عبد</title>
</head>
<body dir="rtl" align="center" style="padding-top: 100px;color: red;">
<h1 style="font-size: 6em;">اهلا بالعالم</h1>
</body>
</html>
في كل صفحة تريد التحقق من token قم باضافة الكود التالي:
<?php
require_once 'init.php';
$token = isset($_GET['token']) ? $_GET['token'] : null;
if (!TokenCheck($token)) {
die('غير مصرح لك بالدخول'); exit();
}
?>
لمعاينة نتيجة الـ php:
http://themes.yaqutlab.com/...حاول الدخول الى صفحة index.php بشكل مباشر :D
http://themes.yaqutlab.com/...وايضا حاول نسخ الرابط من iframe وقم بالدخول الصفحة (لن تعمل بالتاكيد)
هذه هي الطريقة التي وصلت لها ما رئيكم ؟ وهل هناك طريق اخرى؟
التعليقات