|
|
|
| Вот сделал вижок для своего сайта, но не знаю, нормально ли или нет...
http://www.shamank.net/test/
На дизайн только не смотрите, я сделал его что бы просто показать что он есть и его можно менять.
Там етсь новости, для новостей можно создавать категории. Есть статьи для которых можно делать категории, а в категориях подкатегории. Есть файлы, для них тож есть категории и подкатегории (а также один приятный момент но его долго объяснять, позже расскажу). Есть арт тож с категориями и подкатегориями, ну регистарция, авторизация и опрос тож... как думаешь, по возможностям нам его хватит?
Приятная особенось файлов, это просто возможность указать файл где находятся файлы и указать текстовый файл который будет их описывать название, описание и картинка (если есть) ), простенько коненчо, но поскольку файлов много (Скоро начну закачку), то это будет довольно удобно...
ЗЫ. И ПРОСТО УМОЛЯЮ! НЕ ПЫТАЙТЕСЬ ЕГО ВЗЛОМАТЬ! ВРОДЕ БЫ Я ЗАЩИТИЛ ЕГО КАК МОГ, НО ПЛИЗ! Я ЕЩЕ НЕ ПРОВЕРЯЛ НА УЯЗВИМОСТЬ! НЕ НАДО ТАМ НИЧГЕО ДЕЛАТЬ!!!! | |
|
|
|
|
|
|
|
для: DEM
(01.03.2007 в 00:13)
| | Для того, чтобы оценить скрипт, нужно смотреть не на его работу, а на его код. Работает вроде нормально, но не известно как написано.
Теперь явные замечания:
1) Почему у тебя в боковой навигации и в верхней пункты рознятся? И вообще, нафига делать две навигации?
2) Здесь: http://www.shamank.net/test/index.php?razdel=art&art_cat_id=3 картинки не кликабельны.
3) Зачем тебе в новостях категории? У тебя их что, там тонны будут? Если да, то ой. Но я сильно смоневаюсь... ИМХО, достаточно просто сделать список коротких новостей с ссылками "Читать", которые ведут на полный текст новости.
4) Некоторые ссылки открывают новые окна. Это непростительно, особенно для ссылок, находящихся в основной навигации (хотя, может, это и не основная? Блин, соедини ты их в одну!)
5) В гостевухе лучше делать форму добавления нового поста прямо во время просмотра старых. Потому что иначе - не привычно.
6) При регистрации поля съезжают вправо - нот гуд.
7) После успешной регистрации я вижу пустой контент. То есть, ничего не вижу.
8) "Спасибо за авторизацию" - это забавно : )
9) В гостевухе форму перекосило.
10) Обычно пишут "E-mail: <поле>", а не "<поле> - e-mail", но это уже придирки:)
11) Что значит "Выберите оценку" и что будет, если я вместо оценки выберу "Выберите оценку"?
12) Не стоит писать "сообщение" в поле ввода сообщения, ибо это вынуждает пользователя сначала удалить этот текст. Лучше сделать так:
Сообщение<br/>
<textarea></textarea>
|
13) Зачем спрашивать у меня e-mail в гостевухе, если к добавлению постов допускаются только зарегистрированные пользователи, которые при регистрации вводят свое мыло? Лишнее поле. Просто пали мыло (если оно тебе нужно) из базы.
14) Добавить сообщение в гостевушку мне так и не удалось. Вылезало ужасающее окно "Вы не заполнили одно из полей или не выбрали вашу оценку".
15) Раздел "о проекте" в гостевой - это сильно :
16) Рандомная картинка иногда выводит пустоту "Хех..."
17) Блок голосований сразу показывает проценты кто за что проголосовал. Но не дает проголосовать.
18) Про дизайн старался молчать :) | |
|
|
|
|
|
|
|
для: SHAman
(01.03.2007 в 13:39)
| | Спасибо за коментарии, исправлю... На счёт того что авигация розница, это сделао специально и в зависимости от того чему равно поле и определяется, где выводится ссылка. Некоторые ссылки открываются в новом окне, так как у них так выставлен параметр (ну просто ссылки на форум и чат я думаю лучше открывать в новом окне). Не кликабельные картинки, потому что в этой категории указана только папка, а уже скрипт выводит из неё информацию... На счёт остального еще раз большое спасибо...
ЗЫ. код ЭТОГО я вывешу чуть позже, когда хоть немного приведу его в вид пригодный для нормального чтения.... | |
|
|
|
|
|
|
|
для: DEM
(01.03.2007 в 00:13)
| | 1. Наивные названия полей и таблиц. (pass, name, users...)
2. Не используй пасс qwerty.
3. Храни пароли в md5!
4. Не надо пихать свои мыльники аш на главной странице. (спам обеспечен)
5. /admin.php - наивная ссылка на админку, лучше так не делать.
6. http://www.shamank.net/test/index.php?razdel=category_a_view&id=-1+Union+select+1,2,3,4,user(),6,database(),8+from+users/* (Лечи свой движок от SQL-inj)
Дальше искать не стал..
Кстати DEM - админ? Когда под ним логинишся, всеровно в админку не заходит.
ЗЫ Как ты и просил - нчиего не трогал, и ничего не редактировал, только пальем тыкнул на ошибки. | |
|
|
|
|
|
|
|
для: Бамси
(01.03.2007 в 23:49)
| | Я админку пока не делал... Спасибо за указаные уязвимости... Сейчас попытаюсь испрвить | |
|
|
|
|
|
|
|
для: DEM
(02.03.2007 в 00:12)
| | Я проверяю все данные по такому типу (как писал ХЕОПС):
if (!get_magic_quotes_gpc())
{
$id_get = mysql_escape_string($id_get);
}
Но чёт всё равно одно и тоже (((( | |
|
|
|
|
|
|
|
для: DEM
(02.03.2007 в 00:31)
| | От числовых инъекций не спасает - все числовые параметры следует обрабатывать функцией intval()
<?php
$id_get = intval($id_get);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(02.03.2007 в 01:11)
| | Но ведь если в sql-запросе и числовые параметры будут обрамлены одинарными кавычками - спасает ведь... так? | |
|
|
|
|
|
|
|
для: Shorr Kan
(02.03.2007 в 04:03)
| | Вообще говоря да. | |
|
|
|
|
|
|
|
для: cheops
(02.03.2007 в 01:11)
| | То есть такой защиты хватит:
<?
$id_get = htmlspecialchars(stripslashes($_GET['id']), ENT_QUOTES);
$pod_cat = htmlspecialchars(stripslashes($_GET['podkat_id']), ENT_QUOTES);
if (!get_magic_quotes_gpc())
{
$id_get = mysql_escape_string($id_get);
$pod_cat = mysql_escape_string($pod_cat);
}
$id_get = intval($id_get);
$pod_cat = intval($pod_cat);
?>
|
ЗЫ. а если таким способом проверять вводимые данные например в форму (к примеру логин и пароль), всё тоже будет норм? | |
|
|
|
|
|
|
|
для: DEM
(02.03.2007 в 10:51)
| | Мне кажется, хватит:
<?php
$id_get = intval($id_get);
$pod_cat = intval($pod_cat);
?>
|
Или я неправ? Вроде проверял, если писать текст, то в результате значение станет 0. | |
|
|
|
|
|
|
|
для: TrunK
(04.03.2007 в 02:13)
| | ВОзможно, но так всё же спокойнее ))) И он вроде бы тогда поставит равным не 0, а просто НИЧЕГО, пустая строка... | |
|
|
|
|
|
|
|
для: DEM
(04.03.2007 в 02:16)
| | И он вроде бы тогда поставит равным не 0, а просто НИЧЕГО, пустая строка...
Будет просто 0. | |
|
|
|
|
|
|
|
для: DEM
(01.03.2007 в 00:13)
| | От SQL-инъекций вроде бы вылечился, если кто нибудь может, проверьте пожалуйста (но опять же, прошу, ничего не делайте если нийдёте уязвимость, напишите об этом здесь...) Ну и вроде бы всё изменил как надо...
ЗЫ. надо ли ставить эти проверки если происходит POST -запрос? Просто тогда он просто пишет, что поле не заполнено и поэтому я только прописал
$text = htmlspecialchars(stripslashes($_POST['text']), ENT_QUOTES); | |
|
|
|