Перейти к содержимому

Реферальная программа Мегаплана

Выбрать шаблон и создать сайт

Формы, передача данных из формы

#31 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1
0

Отправлено 21 Июнь 2009 - 11:11

угу, XSS, забыл как назвать Веб-атаку правильно)))

кстати, уже эту дыру с кукизами прикрыли :)
  • 0


#32 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 23 Июнь 2009 - 14:09

Почему в этом случае не работает форма? Код
<form action="crypt.php" method="GET">
<input type="text" name="pass" />
<input type="button" name="submit" value="OK" />
</form>
файл crypt.php
<?php
$pass = (isset($_GET['pass'])) ? $_GET['pass'] : 'erorr';
$encpass = '$1$FK3.qn2.$Si5KhnprsRb.N.SEF4GMW0';
if (crypt($pass, $encpass) === $encpass) {
echo 'Good';
} else {
echo 'Bad';
}
?>

  • 0


#33 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 23 Июнь 2009 - 14:51

type="button"
смени на
type="submit"

  • 0

#34 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 23 Июнь 2009 - 15:01

Такой вариант тоже правильный, в смысле правильно записал (crypt.php):
<?php
if (isset($_GET['submit'])) {
$pass = (isset($_GET['pass'])) ? $_GET['pass'] : 'erorr'; 
} else {
echo "bad g";
}

$encpass = '$1$FK3.qn2.$Si5KhnprsRb.N.SEF4GMW0';
if (crypt($pass, $encpass) === $encpass) {
echo 'Good';
} else {
echo 'Bad';
}
?>

И ещё... crypt() ещё используют? И если используют то в каких целях? Ато есть md5() и sha1() - более использоваемые функции...
  • 0


#35 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 23 Июнь 2009 - 15:37

Banderas,
1) Ошибка - error, а не erorr
2) Если кнопка не была нажата надо завершить работу скрипта
if (isset($_GET['submit'])) {
$pass = (isset($_GET['pass'])) ? $_GET['pass'] : 'error';
} else {
die("bad g");
}
3)

Стандартная функция crypt() на основе DES копирует salt в начало возвращаемой строки. Кроме того, она использует только первые восемь символов строки str , поэтому для различных строк, первые восемь символов в которых совпадают, будет возвращаться один и тот же результат (при использовании одинаковых salt-последовательностей).

На системах, где функция crypt() поддерживает несколько алгоритмов шифрования, следующие константы устанавливаются в 0 или 1 в зависимости от доступности соответствующего алгоритма:

* CRYPT_STD_DES - Стандартное DES-шифрование с двухсимвольной salt
* CRYPT_EXT_DES - Расширенное DES-шифрование с девятисимвольной salt
* CRYPT_MD5 - MD5-шифрование с 12-символьной salt, начинающейся с $1$
* CRYPT_BLOWFISH - Blowfish-шифрование с 16-символьной salt, начинающейся с $2$


Почитай обязательно что выделено жирным. Вообщем все алгоритмы хеширования имеют свои недостатки. Но самый важный недостаток я выделил жирным шрифтом. Я бы написал свой алгоритм хеширования строк и использовал в своих скриптах. Тогда ваши скрипты будут защищены надежно. Конечно я не имею ввиду сдвинуть все символы на n значений вперёд или назад. Нет, это вообще полнейший бред. Это уже не хеширование, а обычное шифрование.

Я считаю, что crypt не так удобен как md5, так как со строкой для хеширования нужно передавать второй аргумент salt, поэтому его используют реже. Поймите, что этот salt только задаёт случайность хеширования, но никак не изменяет алгоритм самого хеширования.
  • 0

#36 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 23 Июнь 2009 - 15:58

Спасибо, прочитал, но много чего не понял. Короче ещё "не дорос" xD

Вот ещё на md5() :)
<?
$pass = (isset($_GET['pass'])) ? $_GET['pass'] : 'error';
$md5pass = md5($_GET['pass']);
$truepass = '9cdfb439c7876e703e307864c9167a15';
if (strcmp($md5pass, $truepass) === 0) {
echo "True pass";
} else {
echo "Bad pass";
}
?>

  • 0


#37 yury

yury
  • Пользователь
  • 629 сообщений
  • Репутация: 176

Отправлено 23 Июнь 2009 - 16:02

Почему в этом случае не работает форма? Код

<form action="crypt.php" method="GET">
<input type="text" name="pass" />
<input type="button" name="submit" value="OK" />
</form>

Banderas,
прочитай внимательно то, что тебе отвечали M0rbid в 4 посте этой темы и я дважды в 6 и 12
а то ты так увлекся кавычками, что ответов похоже не читал. :)
  • 0

#38 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 23 Июнь 2009 - 22:08

2*yury* спасибо, я уже понял :) Мне Лёха напомнил в 33 посту :)

пс. про кавычки угадал :)
  • 0


#39 Rinat1994

Rinat1994
  • Пользователь
  • 129 сообщений
  • Репутация: 4

Отправлено 14 Июнь 2012 - 13:23

Ах ха вы че он просто тупо неправильно поставил кнопку отправки!
Нужно не button а submit надеюсь никому Кэпом не показался

Лучше мне помогите :)
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru