PDA

Просмотр полной версии : Надо срочно потестить маленькие скрипты


Дикс
03.03.2008, 13:22
Здрасьте,
сделал вот тестовое задание для устройства на работу пхп-программером, сами понимаете - всё должно быть идеально.

От вас просьба потестить его во всем - начиная от валидности и актуальности 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
Год рождения можно поставить Нулевым так не бывает :-)

bul.666
03.03.2008, 14:01
Проверь на валидность редактирование пользователей

spider-intruder
03.03.2008, 14:04
ОНОТОЛЕЙЙЙЙ - Xss почини наконец )))

diehard
03.03.2008, 14:04
Не связаны логически между собой поля 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, пересылай, а потом раскодируй и пиши в бд. иначе ни у одного юзера не подойдёт пасс к его логину

diehard
03.03.2008, 14:44
Осторожно: поифреймлено :)))

Дикс
03.03.2008, 14:52
>>Год рождения можно поставить Нулевым так не бывает :-)
эта пох, на ачате ваще можно 31 февраля в качестве даты рождения указать.

>>размеры полей контролируй
ёпт ) так увлёкся интерфейсом, что забыл такие простые весчи.

>>Не связаны логически между собой поля Age (Возраст) и Birthday (Дата рождения).
я об этом думал, но в ТЗ написано что бд должна содержать поля "возраст" и "дата рождения". Они уже не вяжутся. так что оставим.

diehard
03.03.2008, 14:54
Дикс

так значит под датой рождения подразумевается день+месяц, без года

imajo.ati
03.03.2008, 14:55
ещё один нюанс. при отключенном яваскрипте пропадает поле для ввода месяца рождения

spider-intruder
03.03.2008, 14:56
ну вроде кое что пофиксил - тестируйте!

imajo.ati
03.03.2008, 14:58
при надписи что все поля обязательны, можно зарегиться указав только логин и пароль

Дикс
03.03.2008, 15:24
блин, точно! надо год убирать.

я перегрелся чуток =\

http://ipicture.ru/uploads/080303/6tT3ELkO1e.jpg

Дикс
03.03.2008, 15:27
>>ещё один нюанс. при отключенном яваскрипте пропадает поле для ввода месяца рождения

а вот тут я хз че делать.
то ли забить на юзеров у которых нет js, то ли делать возможным регистрацию с датами типа 31 февраля.

imajo.ati
03.03.2008, 15:55
а вот тут я хз че делать.
то ли забить на юзеров у которых нет js, то ли делать возможным регистрацию с датами типа 31 февраля.
нет, просто сделать проверку на стороне сервера, мол дата указана неверно, если дата 30-31.02.год

Дикс
04.03.2008, 08:03
да вот не нравится мне этот вариант. это уже ограничение возможностей пользователя.
он может ввести себе идиотское имя, но не может ввести идиотскую дату. никакой логики. а js лишь подсказывает ему как надо правильно вводить.

Дикс
04.03.2008, 08:44
Ребят, потестим ещё разок?
Ща вроде всё пофиксил че тока можно, бородой клянусь!

it's my
04.03.2008, 08:52
а чо чужие записи можно удалять всем?

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
заполняешь пароль, = а а пароль за звездочками можно скопировать и вставить.. =\
проверь ещё раз, у меня не получается. возможно дело в том что пассы могут не совпадать, я написал уже)

Дикс
04.03.2008, 09:20
>>а чо чужие записи можно удалять всем?

можно, это тестовое задание на создание админки и пароль на админку в задании не оговорен.

>>поле подтверждения пароля не работает при отключенном яваскрипте.
>>тоесть я указываю разные пароли а он регит

я считаю это и не надо проверять на стороне сервера. это как бы проблемы самого пользователя, который коряво ввёл свой пароль.
тем не менее я добавлю тег <noscript> который будет извещать о необходимости включения яваскрипта.

>>не говоря о том что поля даты пропускают отрицательные числа и буквы
в базу в таком случае попал один пробел. Отображается November какого-то хрена =\
исправлю так что вообще пустое поле будет на странице View Info.
эти поля обрабатываются intval()

>>и сделай макс. длину для имя\фамилия в 20 символов
да, всё-таки так и сделаю. спс

>>тем более если это админка то должна быть привязка к сессии или возможно будет
>>региться с других серверов. или подтверждение пасса админа нужно. ну думаю это
>>потом допишется)

ну я пасс прикручивать не буду, а что ты имеешь ввиду под привязкой к сессии?
передать в поле hidden номер сессии и сравнить его с текущим?

>>заполняешь пароль, = а звездочки можно скопировать и вставить.. =\
сложно назвать это багом. это скорее пользователь сам себе навредит, если случайно пароль криво наберёт.

xcedz
04.03.2008, 09:22
сложно назвать это багом. это скорее пользователь сам себе навредит, если случайно пароль криво наберёт.

Так ты для себя пишешь или для пользователя что то не понял?

Дикс
04.03.2008, 09:23
Нет! не норм, дело в том что пароль можно копирну в ствить в confirm password .. скажет типо не коррректный пасс... а если еще раз вставить в поле password: пароль принимается.. по моему это не есть хорошо.

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