Просмотр полной версии : Надо срочно потестить маленькие скрипты
Здрасьте,
сделал вот тестовое задание для устройства на работу пхп-программером, сами понимаете - всё должно быть идеально.
От вас просьба потестить его во всем - начиная от валидности и актуальности html, до уязвимости и быстродействия скриптов.
http://dev.centerft.com/blog/admin/index.php
sources (~9 kb):
http://dev.centerft.com/blog/admin/admin_utility.zip
Естественно не за спасибо. Тем кто активно поможет, помогу яндекс деньгами :)
spider-intruder
03.03.2008, 13:28
Xss в имени пользователя :-)
GreenTiger
03.03.2008, 13:29
При добавлении нового:
Некоторые поля уязвимы..
'"/><script>alert(/1/)</script>
Активка
imajo.ati
03.03.2008, 13:36
ничего не фильтруется кроме login =)
<form action="http://dev.centerft.com/blog/admin/index.php?do=add_user&save" method="POST" TARGET="_BLANK">
<input name="login" value='abc'>
<input name="password" value='">'>
<input name="conf_password" value='">'>
<input name="name" value='">'>
<input name="surname" value='">'>
<input name="sex" value='">'>
<INPUT name="age" value='">'>
<INPUT name="date_month" value='">'>
<input name="date_year" value='">'>
<INPUT TYPE="SUBMIT">
</form>
=) при редактировании абсолютно ничего не фильтруется
spider-intruder
03.03.2008, 13:48
размеры полей контролируй
spider-intruder
03.03.2008, 13:53
Год рождения можно поставить Нулевым так не бывает :-)
Проверь на валидность редактирование пользователей
spider-intruder
03.03.2008, 14:04
ОНОТОЛЕЙЙЙЙ - Xss почини наконец )))
Не связаны логически между собой поля Age (Возраст) и Birthday (Дата рождения).
spider-intruder
03.03.2008, 14:17
А как вам это :-)
spider-intruder
03.03.2008, 14:21
А это )))
spider-intruder
03.03.2008, 14:28
Кончайте играться :-)
Пусть ОноТолеЙ думает что ему с этим делать. Толи забить на работу програмистом ПХП толи исправлять баги. ОнотолЕй как будешь готов говори - мы снова разнесем твой блог )))
imajo.ati
03.03.2008, 14:31
если можно писать русские буквы в пасс, то кодируй их в url, пересылай, а потом раскодируй и пиши в бд. иначе ни у одного юзера не подойдёт пасс к его логину
Осторожно: поифреймлено :)))
>>Год рождения можно поставить Нулевым так не бывает :-)
эта пох, на ачате ваще можно 31 февраля в качестве даты рождения указать.
>>размеры полей контролируй
ёпт ) так увлёкся интерфейсом, что забыл такие простые весчи.
>>Не связаны логически между собой поля Age (Возраст) и Birthday (Дата рождения).
я об этом думал, но в ТЗ написано что бд должна содержать поля "возраст" и "дата рождения". Они уже не вяжутся. так что оставим.
Дикс
так значит под датой рождения подразумевается день+месяц, без года
imajo.ati
03.03.2008, 14:55
ещё один нюанс. при отключенном яваскрипте пропадает поле для ввода месяца рождения
spider-intruder
03.03.2008, 14:56
ну вроде кое что пофиксил - тестируйте!
imajo.ati
03.03.2008, 14:58
при надписи что все поля обязательны, можно зарегиться указав только логин и пароль
блин, точно! надо год убирать.
я перегрелся чуток =\
http://ipicture.ru/uploads/080303/6tT3ELkO1e.jpg
>>ещё один нюанс. при отключенном яваскрипте пропадает поле для ввода месяца рождения
а вот тут я хз че делать.
то ли забить на юзеров у которых нет js, то ли делать возможным регистрацию с датами типа 31 февраля.
imajo.ati
03.03.2008, 15:55
а вот тут я хз че делать.
то ли забить на юзеров у которых нет js, то ли делать возможным регистрацию с датами типа 31 февраля.
нет, просто сделать проверку на стороне сервера, мол дата указана неверно, если дата 30-31.02.год
да вот не нравится мне этот вариант. это уже ограничение возможностей пользователя.
он может ввести себе идиотское имя, но не может ввести идиотскую дату. никакой логики. а js лишь подсказывает ему как надо правильно вводить.
Ребят, потестим ещё разок?
Ща вроде всё пофиксил че тока можно, бородой клянусь!
а чо чужие записи можно удалять всем?
imajo.ati
04.03.2008, 08:57
поле подтверждения пароля не работает при отключенном яваскрипте. тоесть я указываю разные пароли а он регит
<form action="http://dev.centerft.com/blog/admin/index.php?do=add_user&save" method="POST" TARGET="_BLANK"><PRE>
login <input name="login" value='login'>
password <input name="password" value='password'>
conf_password <input name="conf_password" value='conf_password'>
name <input name="name" value='name'>
surname <input name="surname" value='8888888888888888888888888888888888888888888 888888888888888'>
sex <input name="sex" value='trans'>
age <INPUT name="age" value='-9999'>
date_month <INPUT name="date_month" value='-9999'>
date_year <input name="date_year" value='-9999'>
<INPUT TYPE="SUBMIT"></PRE></form>
не говоря о том что поля даты пропускают отрицательные числа и буквы
и сделай макс. длину для имя\фамилия в 20 символов
тем более если это админка то должна быть привязка к сессии или возможно будет региться с других серверов. или подтверждение пасса админа нужно. ну думаю это потом допишется)
imajo.ati
04.03.2008, 09:08
заполняешь пароль, = а а пароль за звездочками можно скопировать и вставить.. =\
проверь ещё раз, у меня не получается. возможно дело в том что пассы могут не совпадать, я написал уже)
>>а чо чужие записи можно удалять всем?
можно, это тестовое задание на создание админки и пароль на админку в задании не оговорен.
>>поле подтверждения пароля не работает при отключенном яваскрипте.
>>тоесть я указываю разные пароли а он регит
я считаю это и не надо проверять на стороне сервера. это как бы проблемы самого пользователя, который коряво ввёл свой пароль.
тем не менее я добавлю тег <noscript> который будет извещать о необходимости включения яваскрипта.
>>не говоря о том что поля даты пропускают отрицательные числа и буквы
в базу в таком случае попал один пробел. Отображается November какого-то хрена =\
исправлю так что вообще пустое поле будет на странице View Info.
эти поля обрабатываются intval()
>>и сделай макс. длину для имя\фамилия в 20 символов
да, всё-таки так и сделаю. спс
>>тем более если это админка то должна быть привязка к сессии или возможно будет
>>региться с других серверов. или подтверждение пасса админа нужно. ну думаю это
>>потом допишется)
ну я пасс прикручивать не буду, а что ты имеешь ввиду под привязкой к сессии?
передать в поле hidden номер сессии и сравнить его с текущим?
>>заполняешь пароль, = а звездочки можно скопировать и вставить.. =\
сложно назвать это багом. это скорее пользователь сам себе навредит, если случайно пароль криво наберёт.
сложно назвать это багом. это скорее пользователь сам себе навредит, если случайно пароль криво наберёт.
Так ты для себя пишешь или для пользователя что то не понял?
Нет! не норм, дело в том что пароль можно копирну в ствить в confirm password .. скажет типо не коррректный пасс... а если еще раз вставить в поле password: пароль принимается.. по моему это не есть хорошо.
а по-моему в любом нормальном браузере есть защита от копирования из password-полей. таким образом в клипбоард помещается хз что, может хеш.
соответственно если ты получишь этот результат скопировав из пассворд, то он не будет совпадать с пассвордом. а если воткнуть его и в пассворд - тогда в обоих полях будут одинаковые значения.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot