- Ширина загружаемой фотографии: Пусто
- Ширина превью фотографии: Пусто
- Папка под фотографии: ../../../../etc/
- Количество записей, выводимых в таблице на одну страницу: Пусто
авторизация выглядит следующим образом.
//Авторизация
if (isset($_POST['password']))
{
$sql=mysql_query("SELECT * FROM `other` WHERE `id`='admin_password'"); while ($req = mysql_fetch_assoc($sql)){$md5_pass=$req['key'];}
if(md5($_POST['password']) != $md5_pass) $error_authorization="Не верный пароль!<br>"; else {$_SESSION['login']='Администратор'; $md5_pass='';}
}
if(empty($_SESSION['login']))
{
echo "<form method='post'>
$error_authorization
Пароль<br>
<input type='password' name='password'><br>
<input type='submit' value='Войти' name='rederect_submit'>";
}
else
{
//админка
}
Спустя 9 минут, 1 секунда (18.11.2010 - 00:37) inpost написал(а):
Sonax
И то и другое. В пост запросе можно передать любой скрипт, у тебя не стоит защита вообще никакая. Надо обрезать вредоносный код. И это не дети, вполне разумные действия.
Теперь написали письмо владельцу с таким содержанием: "тра-ля-ля, ваш сайт дырявый, поломали мы, поломали другие, и будут каждый день и каждую ночь ломать. НО! Вы можете обратиться в наше агенство и мы исправим все недочёты. Наша компания всего за 10-20$ сделает ваш бизнес безопасным!".
Минус репутация тебе, плюс репутация им.
И то и другое. В пост запросе можно передать любой скрипт, у тебя не стоит защита вообще никакая. Надо обрезать вредоносный код. И это не дети, вполне разумные действия.
Теперь написали письмо владельцу с таким содержанием: "тра-ля-ля, ваш сайт дырявый, поломали мы, поломали другие, и будут каждый день и каждую ночь ломать. НО! Вы можете обратиться в наше агенство и мы исправим все недочёты. Наша компания всего за 10-20$ сделает ваш бизнес безопасным!".
Минус репутация тебе, плюс репутация им.
Спустя 2 часа, 4 минуты, 24 секунды (18.11.2010 - 02:42) ABC написал(а):
Такого быть не должно, помимо авторизации вообще ни одной проверки нет что ли?
Спустя 3 часа, 15 минут, 29 секунд (18.11.2010 - 05:57) Guest написал(а):
Дети не дети, а урок тебе преподали )
Спустя 13 часов, 48 минут, 20 секунд (18.11.2010 - 19:45) Sonax написал(а):
foreach($_GET as $k=>$v)$_GET[$k]=mysql_real_escape_string($v);
foreach($_POST as $k=>$v)$_POST[$k]=mysql_real_escape_string($v);
У меня в connect.php инклуженом на всех страницах стоит этот код, так что за безопастность в этом случае я не парюсь.
A.B.C. Это print_r($_POST); Использую во время разработки.
foreach($_POST as $k=>$v)$_POST[$k]=mysql_real_escape_string($v);
У меня в connect.php инклуженом на всех страницах стоит этот код, так что за безопастность в этом случае я не парюсь.
A.B.C. Это print_r($_POST); Использую во время разработки.
Спустя 6 часов, 11 минут, 36 секунд (19.11.2010 - 01:57) ABC написал(а):
Sonax
Да собственно, mysql_real_escape_string - используется исключительно для безопасного занесения данных в БД и желательно делать это в момент занесения:
"...WHERE name='". mysql_real_escape_string($name)."'"
Да собственно, mysql_real_escape_string - используется исключительно для безопасного занесения данных в БД и желательно делать это в момент занесения:
"...WHERE name='". mysql_real_escape_string($name)."'"
Цитата |
foreach($_GET as $k=>$v)$_GET[$k]=mysql_real_escape_string($v); foreach($_POST as $k=>$v)$_POST[$k]=mysql_real_escape_string($v); |
этими строчками ты только загружаешь и тормозишь скрипт, как мне кажется.
Лучше перед каждым выводом инфы на экран обработай ее htmlspecialchars, а чтоб не вводили то что не нужно и меньше тормозило обрежь вводную инфу какой-нибудь регуляркой.
И не забудь про проверку и перевод в int() для id в строке где выбираешь поля, которые лучше было бы конкретно указать, а не писать *.
Пусть меня поправят если что-то не так.
Спустя 6 часов, 59 минут, 55 секунд (19.11.2010 - 08:57) Basili4 написал(а):
Sonax
а нах.
вот это нужно
а нах.
вот это нужно
Цитата (Sonax @ 18.11.2010 - 20:45) |
foreach($_GET as $k=>$v)$_GET[$k]=mysql_real_escape_string($v); foreach($_POST as $k=>$v)$_POST[$k]=mysql_real_escape_string($v); |
это как воду в ступе толочь на всякий случай.
Спустя 4 дня, 9 часов, 23 минуты, 51 секунда (23.11.2010 - 18:21) maximka787 написал(а):
Какая-то новая прям система авторизации) необычная.
Ты можешь просто
1. проверить на POST
2. проверить длину переменных ограничив до 10 например
3. урезать принудительно (для спокойного сна)
4. Фильтр на теги
5. + mysql_real_escape_string(); (в базу)
и на всех условиях exit(); при невыполнении.
И дальше живи не думая о проблемах)
Ты можешь просто
1. проверить на POST
2. проверить длину переменных ограничив до 10 например
3. урезать принудительно (для спокойного сна)
4. Фильтр на теги
5. + mysql_real_escape_string(); (в базу)
и на всех условиях exit(); при невыполнении.
И дальше живи не думая о проблемах)
Спустя 1 день, 1 час, 30 минут, 23 секунды (24.11.2010 - 19:51) Sonax написал(а):
A.B.C., скрипт работает оптимально быстро, генерация меньше сотой секунды на всех страницах. Basili4, Пусть будет.
maximka787, писал сам, как придумал. Это всё стоит.
Вопрос в том, есть ли дыры на сайте или нет, если есть какие.
maximka787, писал сам, как придумал. Это всё стоит.
Вопрос в том, есть ли дыры на сайте или нет, если есть какие.
Спустя 1 день, 5 часов, 1 минута, 33 секунды (26.11.2010 - 00:53) bebeka написал(а):
Я может быть ошибаюсь, но это вообще нормально такое писать ?
А не будет проще сделать вот так:
И еще, вот, написано:
То есть, если переменная $_SESSION['login'], пустая, то выводим форму ??
Так нельзя, надо постоянно проверять на совпадения. И хранить не логин в сессиях, а допустим session_id()...Не знаю...
А не будет проще сделать вот так:
if (mysql_num_rows("SELECT * FROM `other` WHERE `id`='admin_password' AND `key` = '".mysql_real_escape_string($_POST['password'])."'") == 0) {
// Ошибка, не найден наш клиент...
} else {
// Админка
}
И еще, вот, написано:
if(empty($_SESSION['login']))
То есть, если переменная $_SESSION['login'], пустая, то выводим форму ??
Так нельзя, надо постоянно проверять на совпадения. И хранить не логин в сессиях, а допустим session_id()...Не знаю...