Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
  • Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Веб Тестовый движок :)

ANTI_GREEFER

Активный участник
Пользователь
Баллы
88
Делать было нефиг. Всегда не любил MySQL. И решил написать FileSQL!
Программа проста в использовании!
Пока что мало функций и нет дизайна.
Список функций:


FileSQL_GenerateHash("Админ", "0000"); //Генерирует хэш их логина и пароля.
FileSQL_UserCreate("Админ", "0000"); //Создает пользователя
FileSQL_UserAuth("Админ", "0000"); //Авторизация пользователя
FileSQL_CookiesCreate("Админ", "0000"); //Ставит кукисы
FileSQL_CookiesRead("Админ", "0000"); //Проверяет кукисы




FileSQL_CookiesRead("Логин", "Пароль");
//Возвращает три результата.
// y - кукисы есть
// n - кукисов нет
// ok - кукисы есть и они валидны
// Внимание! Эта функция не дописана и толком не работает!


Что бы подключить скрипт к вашей странице, необходимо написать:


$work = 1;
include_once("FileSQL_Functions.php");

А главное - что она не использует MySQL!

Скачать! (Кликабельно )
 
Гхм, а при чем тут SQL?
И зачем было обфусцировать код?
 
Гхм, а при чем тут SQL?
Не при чем :)
Лень было название придумывать.
Люди - то что я выложил оказывается не работоспособно.

<?php
$userIP = $_SERVER["REMOTE_ADDR"];

if( $work == 1 ) {
}
else {
echo "Hacking attempted! Actions will be taken! Your IP will be saved to log!";
$ips = file_get_contents("FileSQL_IP.log");
$newIPs = $ips." || ".$userIP . " || ";
file_put_contents("FileSQL_IP.log", $newIPs);
die();
}


function FileSQL_GenerateHash($login, $password) {
$hash = md5($login.$password);
return $hash;
}


function FileSQL_UserCreate($login, $password) {

$login = preg_replace("/[^(\w)|(\x7F-\xFF)|(\s)]/", "", $login);
$password = preg_replace("/[^(\w)|(\x7F-\xFF)|(\s)]/", "", $password);
$password = md5(md5(md5(md5($password))));
$hash = FileSQL_GenerateHash("$login", "$password");
touch("users/_info.$login");
file_put_contents("users/_info.$login", "$login $password $hash");

}

function FileSQL_UserAuth($login, $password) {

$login = preg_replace("/[^(\w)|(\x7F-\xFF)|(\s)]/", "", $login);
$password = preg_replace("/[^(\w)|(\x7F-\xFF)|(\s)]/", "", $password);
$password = md5(md5(md5(md5($password))));

if( file_exists("users/_info.$login") ) {
$userInfo = file_get_contents("users/_info.$login");
$userInfoArr = explode(" ", $userInfo);
print_r($userInfoArr);
if( $userInfoArr[1] == $password ) {
return "YEP";
}
else {
return "NOPE";
}
}


}

function FileSQL_CookiesCreate($login, $password) {


//I don't hate u. (C) Aperture Centry Turret
//Азаза затралил сервер
$lolhash = md5(md5(md5(md5(sha1(sha1(sha1(sha1(md5(str_replace("a", "lol_dovai_dosvidania", $login.$password))))))))));
//You shall not read my passwords ^_^
setcookie("fckinguserhash", $lolhash, time()+300);
setcookie("l", base64_encode($login), time()+300);
setcookie("p", base64_encode($password), time()+300);
//That's all, my little friend......... NOPE! I AM KIDDIN' OFCOURSE, I HATE U!


}

function FileSQL_CookiesRead($login, $password) {


if( $_COOKIES["fckinguserhash"] ) {
$login = base64_decode($_COOKIES["l"]);
$password = base64_decode($_COOKIES["p"]);
$hash = md5(md5(md5(md5(sha1(sha1(sha1(sha1(md5(str_replace("lol_dovai_dosvidania", "a", $login.$password))))))))));
if( $_COOKIES["fckinguserhash"] == $hash ) {
return "ok";
}
else { return "n"; }
}
else {
return "y";
}
}

?>
Вот полный исходный код без обфускации.
Почитайте комментарии. Возможно посмеетесь :)
 
:Dубило наповал....(жаль не комментарии)
 
Смысл от этого велосипеда с треугольными колесами? А главное, что люди-то не дураки, и если не нужна полноценная SQL с бд и коннектов, то существует SQLite, которая все хранит в файлик.
 
Смысл от этого велосипеда с треугольными колесами? А главное, что люди-то не дураки, и если не нужна полноценная SQL с бд и коннектов, то существует SQLite, которая все хранит в файлик.
Да ладно тебе, пускай люди изобретают велосипеды, это их дело:) (Ибо любой изобретенный велосипед это определенный опыт... Конечно тут есть и обратная сторона медали - когда этот велосипед повсеместно внедряется, то это уже становится диким кошмаром(чего только 1с 7.х стоит....) )
 
Да ладно тебе, пускай люди изобретают велосипеды, это их дело:) (Ибо любой изобретенный велосипед это определенный опыт... Конечно тут есть и обратная сторона медали - когда этот велосипед повсеместно внедряется, то это уже становится диким кошмаром(чего только 1с 7.х стоит....) )
Я не спорю, без велосипедов ничего бы не появилось нового. Не нравится mysql пусть сделает тогда обертку для sqlite.
 
Никогда не храните пароль в кукисах
 
А где их ещё можно хранить?, Правильно не где, я имею ввиду при запоминание пользователя

:D
md5(md5(md5(md5(sha1(sha1(sha1(sha1(md5 Смысл? , два раза md5 вполне хватит, а sha1 вроде дешифруется
Куки просто в басе 64 зашифрованы чтоле:eek: ?
Сначала сотри всё своё шифрование и проверяй, как фиг в нём не запутаться
При запоминании авторизации пользователя не нужно хранить пароль, вообще.(да и логин не желательно)

А двойное md5 повышает возможность коллизий, что по сути своей является уязвимостью хэша.
 
@slava00, для запоминания пользователя разумнее всего использовать токены. Что это да как это, долго рассказывать
 
Ну, во первых - сессии. Во вторых - в сессии пишем id, ip, и тукен.
При проверки валидности пользователя сверяем его текущий ip с ip записанным при авторизации(в базу или сессию), проверяем тукен. Это как минимум.

Не не слышал про твой коллизий, сначала проверь потом говори:D
Читай.
 
md5(md5(md5(md5(sha1(sha1(sha1(sha1(md5 Смысл? , два раза md5 вполне хватит, а sha1 вроде дешифруется
Не не слышал про твой коллизий, сначала проверь потом говори:D
Ага, двойной и более rand() повышает случайность числа
FACEPALM.


А по теме - очередной велосипед, причём совершенно бесполезный.
Да и творение ТС больше похоже на Memcached или Redis, чем на MySQL.
 

Поделиться этой страницей

Назад
Верх