Помощник
|
Безопасность |
Panich
|
Сообщение
#1
|
||
|
|
||
|
|||
Apay |
2.8.2012, 22:41;
Ответить: Apay
Сообщение
#2
|
|
|
|
|
Panich
|
Сообщение
#3
|
|
Понял!!!Ошибку нашёл!Спасибо!!!
А по безопасности что скажете? |
|
|
Azazaza_hb |
3.8.2012, 7:42;
Ответить: Azazaza_hb
Сообщение
#4
|
|
помоему это слишком... зачем все эти функции обработки логина и пароля в первой части кода если вы потом сверяете их с регулярным выражением [a-zA-Z0-9_\.\-], и значения из базы, например id зачем проверять на число? вы что допускаете что там может быть не число? или кто-то может изменить значение в сессии?:wacko:
|
|
|
Muxa_hb |
3.8.2012, 9:23;
Ответить: Muxa_hb
Сообщение
#5
|
|
у вас неверно сама логика - вы сначала проверяете на пустоту empty(), а только потом уже очищаете от пробелов. т.е. получается, что если ввести обычный пробел в поле ввода - то он пройдет по первому условию, и только потом вы уже убираете пробелы и оно не пройдет..
и получится что будут лишние проверки [PHP]$result = mysql_query($sql, $db)or die("Ошибка в запросе: " . mysql_error()); ************if (!$result) ************{ ************echo "ошибка - ".mysql_error()."";[/PHP] в ифе условие тоже не выполнится в случае ошибки потому что[PHP] or die("Ошибка в запросе: " . mysql_error());[/PHP] die - прерывает выполнение скрипта или кто-то может изменить значение в сессии? а почему бы и нет? :) к тому же использование header() после session_start()... |
|
|
Muxa_hb |
3.8.2012, 9:37;
Ответить: Muxa_hb
Сообщение
#6
|
|
и еще одно. mysql_real_escape_string() добавляет экранирование. если будет что экранировать, к примеру Д'Артаньян какой нибудь - то регулярка его уже не пропустит - ни слэша, ни ' в разрешенных литералах нет, зато есть точка и дефис (дефис еще ладно, но зачем точка - я лично не понимаю)
и соответственно использование mysql_real_escape_string() совместо с htmlspecialchars приведет к экранированию не тех символов.. к примеру кавычка проэкранируется как \" и что в базу уйдет? и по вашей регулярке, так как не указано число символов - один символ вполне проходит как нормальный - т.е. у вас можно региться как A к примеру с паролем B |
|
|
Muxa_hb |
3.8.2012, 10:10;
Ответить: Muxa_hb
Сообщение
#7
|
|
[PHP]<?php ob_start();
session_start(); include ("bd_hell.php"); $login = trim($_POST['login']; $pass = trim($_POST['pass']); if(empty($login) || empty($pass)) { echo "Вы заполнили не все поля!"; } else { if(get_magic_quotes_gpc()) { $login = stripslashes($login); $pass = stripslashes($pass); } $login = mysql_real_escape_string(strip_tags($login)); $pass= mysql_real_escape_string(strip_tags($pass)); if(!preg_match("/^[A-z]+?[A-z0-9]{4,15}+$/ui",$login)) echo("Неверный формат логина"); else { if(!preg_match("/^[A-z]+?[A-z0-9]{4,15}+$/ui",$pass)) echo("Неверный формат пароля"); else { $sql = sprintf("SELECT `login`,`pass` FROM `userlist` WHERE `login`='%s' AND `pass`='%s'",$login,$pass); $result = mysql_query($sql, $db); if($result) { //все ок $_SESSION['login']=$login; } else { echo "Ошибка!"; } } }[/PHP] :D |
|
|
Panich
|
Сообщение
#8
|
|
Спасибо,применяю к работе!
Кстати,а в чём разнице между с BUM т без BOM? Всё сделал как Вы советовали:пользователь вводит логин и пароль-передаётся обработчику,который если "плохо",то на index.html,а если нормально,то на нужную страницу-на нужной страницу проверяю: [PHP]if (isset($_SESSION['id']))[/PHP] ,но всё время проверяет условие "else"-как быть?В чём причина может скрываться? |
|
|
Azazaza_hb |
3.8.2012, 13:29;
Ответить: Azazaza_hb
Сообщение
#9
|
|
здесь написано про BOM http://ru.wikipedia.org/wiki/Byte_order_mark
он добавляется в самом начале файла и выводится первым, и если вы хотите послать какието заголовки то будет ошибка тпа "Cannot send session cookie - headers already sent by ..." потому что заголовки можно посылать до вывода данных. Поэтому сохраняйте в UTF8 без BOM если используете в коде сессии, то надо в начале файла писать session_start(); |
|
|
Panich
|
Сообщение
#10
|
|
|
О!Спасибо...не знал даже!!!
Да что уж там-ВСЕМ БОЛЬШОЕ СПАСИБО!!!
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Нужен копирайт, информационная безопасность | 3 | Petechka | 2795 | 29.9.2019, 20:08 автор: A_Lika |
|
Безопасность и конфиденциальность информации | 0 | AlexKO | 2738 | 1.7.2012, 1:19 автор: -AlexKO- |
|
Размешаю статьи - Компьютерная безопасность | 0 | ilyazh_hb | 3535 | 6.8.2008, 23:22 автор: -ilyazh- |
Текстовая версия | Сейчас: 19.4.2024, 15:42 |