|
| |
|
|
| |
для: ЯR
(09.11.2006 в 15:49)
| | | Ваша проверка при простейшей инъекции сдаст базу с потрохами:) | |
| |
|
|
|
| |
|
|
| |
для: cheops
(09.11.2006 в 23:30)
| | | Ясно.. я просто думал что так оно будет меньше заметно :)
А можно где-нибудь в интернете почитать статьи о защите сайта и о возможных недочётах у начинающих? | |
| |
|
|
| |
|
|
| |
для: ChieFSS
(09.11.2006 в 16:31)
| | | >А можно сделать так чтобы эта переменная передавалась не через get, а post ?
Можно через сокеты передавать, но это не удобно. Кроме того, на такую страницу нельзя будет сослаться с другой страницы и они не будет индексироваться роботами поисковых систем, а злоумышленику всё равно, что подделывать GET- или POST-данные, т.е. в плане защиты это не даёт никакого преимущества. | |
| |
|
|
| |
|
|
| |
для: ChieFSS
(09.11.2006 в 15:27)
| | | Всё заработало.. всем спасибо
А можно сделать так чтобы эта переменная передавалась не через get, а post ? | |
| |
|
|
| |
|
|
| |
для: ChieFSS
(09.11.2006 в 16:20)
| | | mysql_num_rows возвращает кол-во записей, выбраных при данном запросе, если их больше нуля, значит такая запись есть
> А если поле БД имеет значение int или это не связано с полем БД ?
не связано, в данном случае переменной $p присваивается целочисленное значение (integer) | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(09.11.2006 в 16:00)
| | |
А если поле БД имеет значение int или это не связано с полем БД ?
>Этот запрос выбирает из базы все записи ... так и надо или нужно взять конкретную, под номером "p" ?
изменил.. пока работает.. :)
А что означает 0 в этой записи?
if (mysql_num_rows($href) > 0)
|
Потому что у меня значение 0 означает вывод на экран главной страницы так же как и если P вообще не определена, но 0 в таблицы нет и не может быть т.к. поле not null и если создаётся поле с 0 значением, то оно создаётся с максимальным, который есть +1 | |
| |
|
|
| |
|
|
| |
для: ChieFSS
(09.11.2006 в 15:27)
| | | Чтобы избавиться от всякой бяки из гет запроса, можно привести значение "p" к численному типу
>можно ли поставить проверку на наличие такого номера в БД ? Вот если надо запрос выглядет так:
>$href=mysql_query("select * from links order by name;");
Этот запрос выбирает из базы все записи ... так и надо или нужно взять конкретную, под номером "p" ?
Если так, то запрос будет выглядеть примерно так:
$href=mysql_query("SELECT * FROM links WHERE id='$p'");
|
Затем можно проверить количество полученных строк, если ничего не получили, значит такой записи в таблице нет:
if (mysql_num_rows($href) > 0)
{
* * * * запись есть, выводим * * * *
}
else
{
echo "В базе данных нет запрошенной записи";
}
|
| |
| |
|
|
| |
|
|
| |
для: ChieFSS
(09.11.2006 в 15:27)
| | | > можно ли поставить проверку на наличие такого номера в БД ?
Можно проверять так:
<?php
if(mysql_num_rows($query) > 0){
// Значит такая запись существует
}else{
// Не существует
}
?>
|
| |
| |
|
|
| |
|
|
| | У меня на сайте адрес должен выглядень так: www.site_name.ru?p=1
где p - это название страницы. по ней сайт определяет какую ссылку подсветить, какой текст показать, какую картинку и т.д.
Я попробовал в значение P поставить какой-нибудь такой номер 45145876
Естественно такого номера в БД нет и сайт ничего не отображает.. можно ли поставить проверку на наличие такого номера в БД ? Вот если надо запрос выглядет так: $href=mysql_query("select * from links order by name;");
Потом попробовал сделать так: www.site_name.ru?p='
Выдаёт ошибку.. на сколько я знаю это дырка и через неё можно пробраться в БД.
Как можно это предотвратить?
И ещё эта P передаётся методом GET соответственно сайт проверяет значение P через $_GET['p']
А как можно такое сделать через POST ?
Кстати эта P сохраняется в БД как id (auto_inrcement и primary key) | |
| |
|
|
|