Рейтинг@Mail.ru
Перейти к содержанию

Уважаемые посетители! Если у вас возникают проблемы с входом, регистрацией или сменой пароля, обращайтесь в эту тему (там можно писать без регистрации) с указанием где возникла проблема - на сайте или форуме.

Авторизация  
Yurik

Защита сайта?

Рекомендуемые сообщения

Привет!Кто может помочь?Надо как-то надежно запоролить свой проект-какие есть способы?То,что я могу сам написать не подходит,т.к. любой юзер не долго думая взломает это дело.... :) Подскажите пожалуйсто что-нибудь!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Разумно,но все пароли открываются как делать нечего если человек в html шарит :) ...Видимо я немного не так спросил :) .Спрошу заново:А есть ли ещё какие-нибудь средства защиты,в частности запароливания,но не с помощью явы?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Что-то я сомневаюсь, что шарящий в html-человек просто так откроет 12-значный пароль... Но если уж надо, то просто пароль через md5-кодирование пропусти.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Может я просто не знаю чего на этот счёт?Обычно достаточно скачать страничку и открыть её блокнотом :) .Там вы сами знаете что написано:
if ...="слово пароль",то открыть сайт или т.п.И как здесь не подберёшь-ведь пароль только ленивый не узнает? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
[quote name="Yurik"]Может я просто не знаю чего на этот счёт?Обычно достаточно скачать страничку и открыть её блокнотом :) .Там вы сами знаете что написано:
if ...="слово пароль",то открыть сайт или т.п.И как здесь не подберёшь-ведь пароль только ленивый не узнает? :)[/quote]
:) , до того, как страничка появляется у пользователей на мониторе, все операторы обрабатываются сервером и в браузер выдается только чистый html. Что это значит? Это значит, что никакого "if(условие) { действие} иначе { действие }" там не будет, а будет только то, что находится между фигурных скобок (в зависимости от подтверждения/отрицания условия). Поэтому за пароль можешь не беспокоиться. Но всё-таки лучше его через md5 пропустить. 8)
А ещё.. Это всё естественно не относится к java-script. Впервый раз слышу, чтобы пароль проверялся java-скриптом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
А можете кто-нибудь примерный код накатать?А то не совсем ясно...А что такое md5?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Могу написать "шаблон" на php. В таком виде его конечно вряд ли стоит использовать на серьезном сайте, но в качестве примера подойдет в самый раз. Ну и ещё одна оговорка - напишу для работы с БД MySQL. Но его можно легко переделать и для работы с обычным текстовым файлом в качестве БД. За символами "//" постараюсь описать все важные действия.
Пусть в базе данных с именем "mysite", есть таблица "pass", в которой есть поле "somepass" в котором уже записан тот самый код доступа в формате md5. Код файла (назовем его 111.php) будет таким
[code]
// проверяем пароль
if($_POST['submitpass']) {
if(!$_POST['submittedpass']) { // если пароль не введен, выводим ошибку
die("Please, enter the password!");
}
$submittedpass = md5($_POST['submittedpass']); // если пароль введен, то преобразуем его в md5-формат
if(!$db = mysql_connect("localhost", "iceman", "")) { //если нельзя подключиться к базе данных - ошибка
echo "Connecting error";
} else { // иначе - если нельзя выбрать таблицу, то выводим ошибку
if(!mysql_select_db("mysite", $db)) {
echo "Selecting error";
} else { // если таблица выбрана - выбираем из её значений нужное нам поле
$query = mysql_query("SELECT somepass FROM pass", $db);
$truepass = mysql_fetch_row($query); // преобразовываем полученные данные в массив
}
mysql_close(); // закрываем базу данных
}
if($submittedpass == $truepass[0]) { // если введенный пароль в формате md5 = паролю из базы данных (в которой тоже записан пароль в md5-формате)[/code]
[color=violet][code]define("TRUE_PASS", TRUE);[/code][/color][code]
header("location: http://www.url.ru"); // то переходим на нужную страницу
} else {
die("ErrorPass"); // иначе - пинком назад :)
}
}
?>

Теперь, создаем файл с формой для заполнения. В параметре action этой формы указываем нужный файл для обработки этой формы.



[/code]

Вроде всё. Работать будет точно, но вот какие минусы:
- Все действия мы производили вручную. А представь, что таких форм штук сто... Поэтому обычно для каждого действия (подключение к базе, выборка данных, запись данных в массив) пишут отдельную функцию, а потом просто вызывают её (например, для подключения можно было бы написать функцию Connect, а в файле вызвать её следующим образом - Connect("Нужный параметр"); )
- База данных. Обычно в каждой таблице содержатся сотни записей, а не как в нашем случае - всего одна. Поэтому код может быть намного сложнее. А это - лишь шаблон, по которому пишутся практически все программы.
- Отсутствие проверки введенной информации. Т.е. мы не описали допустимые символы для пароля. Описываются они с помощью регулярных выражений, а проверяются, например, встроенной функцией - preg_match().

Ну а в целом - повторюсь, код полностью рабочий и годен для использования на небольших сайтах. Если же на таком сайте нет доступа к базе данных, то код легко можно переписать на работу с текстовой базой.

И если хоть что-то из того, что я написал будет понятно, то это очень здорово, потому как потратил я на эту писанину полчаса :mrgreen:

З.Ы. Да, кстати. В функции mysql_connect() стоят следующие параметры (всегда по порядку) - ("сервер", "имя пользователя базы данных", "пароль к базе данных"). В качестве сервера почти всегда подходит "localhost", а вот остальные параметры - строго индивидуальные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Прошу прощения, что не заметил сразу! Тут есть ещё один пункт. Страница, на которую пускают только с паролем, должна быть защищена от доступа без предварительной проверки пароля, для этого в самом её начале нужно вставить нечто подобное:[code]
if(!defined("TRUE_PASS")) { // если некая константа TRUE_PASS неопределена (не имеет никакого значения), то страница грузиться не будет
die("Access denied!");
}
?>
[/code]
И далее - сама страница. А в основном коде добавь ещё одну строчку (выделил отдельно и в том месте, куда нужно вставить). Теперь всё правильно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×