oxygenium
Компетентный
Приветствую пользователей Pawno-Info.Ru. Вот вам защита для вашего шаблона. В отличии от тех, которые запрещают правую кнопку мыши, она скрывает и кодирует исходный код.
Функции:
guard_replace(значение)
guard(значение)
guard_escape(значение)
Из всех функций понадобится только guard
Мануал по установке:
1. Создаем файл guard.inc.php cо следующим содержимым
2. В ваш документ (index.php и т.д.) подключаем этот файл через require_once и засовываем весь HTML код в функцию guard.
Пример:
При просмотре кода страницы выведет примерно следующее:
Функции:
guard_replace(значение)
guard(значение)
guard_escape(значение)
Из всех функций понадобится только guard
Мануал по установке:
1. Создаем файл guard.inc.php cо следующим содержимым
PHP:
<?php
function guard_replace($str)
{
$from = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$to = 'nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM';
return strtr($str, $from, $to);
}
function guard_escape($plain)
{
$escaped = "";
$passChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789*@-_+./";
for ($i = 0; $i < strlen($plain); $i++)
{
$char = $plain{$i};
if (strpos($passChars, $char) === false)
{
$escaped .= sprintf("%%%02X", ord($char));
}
else
{
$escaped .= $char;
}
}
return $escaped;
}
function guard($plain, $longPwd=False, $rot13=False, $sorry="Ваш текст")
{
$escaped = guard_escape($plain);
if ($rot13)
{
$escaped = guard_replace($escaped);
}
$numberOfColumns = 10;
$numberOfRows = ceil(strlen($escaped) / $numberOfColumns);
$scrambled = "";
$escaped = str_pad($escaped, $numberOfColumns * $numberOfRows);
$password = "";
srand(time());
for ($j = 0; $j < ($longPwd ? $numberOfRows : 1); $j++)
{
$availChars = substr("0123456789", 0, $numberOfColumns);
for ($i = 0 ; $i < $numberOfColumns; $i++)
{
$char = $availChars{ rand(0, strlen($availChars)-1) };
$password .= $char;
$availChars = str_replace($char, "", $availChars);
}
}
$scramblePassword = str_repeat($password, $longPwd ? 1 : $numberOfRows);
$scrambled = str_repeat(" ", $numberOfColumns * $numberOfRows);
$k = 0;
for ($i = 0; $i < $numberOfRows; $i++)
{
for($j = 0; $j < $numberOfColumns; $j++ )
{
$scrambled{(((int)$scramblePassword{$k}) * $numberOfRows) + $i} = $escaped{$k};
$k++;
}
}
$javascript = "<SCRIPT>\n<!--\n";
$javascript .= "Тут ваш текст)\n";
$javascript .= "var a='';var b='$scrambled';var c='$password';";
if ($rot13)
{
$javascript .= "var d='';";
}
$javascript .= "for(var i=0;i<$numberOfRows;i++) for(var j=0;j<$numberOfColumns;j++) ";
if ($rot13)
{
$javascript .= "{d=b.charCodeAt(";
}
else
{
$javascript .= "a+=b.charAt(";
}
if ($longPwd)
{
$javascript .= "(parseInt(c.charAt(i*$numberOfColumns+j))*$numberOfRows)+i); ";
}
else
{
$javascript .= "(parseInt(c.charAt(j))*$numberOfRows)+i);";
}
if ($rot13)
{
$javascript .= "if ((d>=65 && d<78) || (d>=97 && d<110)) d+=13; else if ((d>=78 && d<91) || (d>=110 && d<123)) d-=13;a+=String.fromCharCode(d);}";
}
$javascript .= "document.writeln(unescape(a));\n";
$javascript .= "-->\n</SCRIPT>\n";
$javascript .= "\n$sorry";
return $javascript;
}
?>
Пример:
PHP:
<?php
require_once("guard.inc.php");
echo guard('
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Welcome to Blur Studio</title>
<meta name="description" content="..." />
<meta name="keywords" content="..." />
<style type="text/css" media="all">
@import url("css/style.css");
@import url("css/nivo-slider.css");
@import url("css/custom-nivo-slider.css");
@import url("css/jquery.fancybox.css");
</style>
<!--[if lt IE 8]><style type="text/css" media="all">@import url("css/ie.css");</style><![endif]-->
</head>
');
?>
Код:
%22e.ma2siurtn%00ites2ucaIr.02%nCp%0C%09%09%3sdlA%0%C%09Ea2s2ltnt002%%mpi%0eo0lct2m22lr3/9%3A%09%09%aaE%0CgE%0Cegnndig02eusi%0%0e2oi2e%noa22lr3/9%3A%09%39%09E%32-%09%0A%09%09%0i92n2%09%09/%
Последнее редактирование:
