Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: безопасность mysql

Сообщения:  [1-10]   [11-15] 

 
 автор: Sergeich   (27.11.2012 в 01:51)   письмо автору
 
   для: skinny   (26.11.2012 в 17:20)
 

Начиная с версии 4.3 функция mysql_escape_string() является устаревшей, а ее использование - крайне нежелательным http://www.php.net/manual/en/function.mysql-escape-string.php
Это же касается и второй функции. Хотя работать они должны. По крайней мере у меня на РНР версии 5.3.10-1ubuntu3.4 все работает.
Вместо них рекомендуется использовать расширения MySQLi или PDO_MySQL http://www.php.net/manual/en/function.mysql-real-escape-string.php

  Ответить  
 
 автор: skinny   (26.11.2012 в 17:20)   письмо автору
 
   для: cheops   (24.11.2012 в 14:21)
 

php 5.4

  Ответить  
 
 автор: cheops   (24.11.2012 в 14:21)   письмо автору
 
   для: skinny   (24.11.2012 в 13:20)
 

Хм... странно, а какая версия PHP используется? Вроде на эти функции пока никто не покушался...

  Ответить  
 
 автор: skinny   (24.11.2012 в 13:20)   письмо автору
 
   для: cheops   (21.11.2012 в 21:41)
 

решил поставить посмотреть новую джумлу, обновил php
теперь функция mysql_escape_string() не работает, как оказалось и функция mysql_real_escape_string() тоже не работает, она тупо возвращает пустую строку.
Есть ли какая то функция полностью аналогичная mysql_escape_string()?

  Ответить  
 
 автор: cheops   (21.11.2012 в 21:41)   письмо автору
 
   для: skinny   (20.11.2012 в 15:31)
 

Тут никак, более того mysql_escape_string() тут избыточен, так как вы явно приводите $id к числу, следовательно, никаких кавычек в нем не будет, для mysql_escape_string() нет работы.

  Ответить  
 
 автор: skinny   (20.11.2012 в 15:31)   письмо автору
 
   для: cheops   (18.11.2012 в 16:26)
 

по первому и третьему понятно
по второму
разработчику или злоумышленнику - какая разница. Меня интересует не этическое а практическое решение
например:

$id = $_GET['id'];
$id = (int)$id;
if($id)
{
     $z = 'SELECT * FROM `table` WHERE  `id` = '.mysql_escape_string($id).'   ';
}


как можно тут что-то подсунуть в запрос левое?

  Ответить  
 
 автор: cheops   (18.11.2012 в 16:26)   письмо автору
 
   для: skinny   (17.11.2012 в 22:04)
 

1. PEAR - это библиотека кода, написанная на PHP. Библиотека почти стандартна, т.е. каждый уважающий себя разработчик должен знать что это такое (использовать не обязательно, много корявых реализаций, по крайней мере было раньше). Толкового описания PEAR на русском языке я не встречал, собственно оно не появляется еще и потому, что PEAR не очень популярно, особенно в России. Как-то больше прижились FrameWork-и вроде ZendFramework или Symfony.
2. Кому? Обойти злоумышленнику или разработчику?
3. Это просто неудачная формулировка. Когда вы используете PDO, вы вместо параметров в SQL подставляете знаки вопроса, вместо которых потом подставляются параметры. Подставляются в порядке их перечисления, вместо первого знака вопроса подставляется первый параметр, вместо второго - второй параметр и т.д. Вместо знаков вопроса можно использоваться именнованные параметры
"SELECT * FROM tbl WHERE name = :name AND par = :todo"

Потом заполнять SQL-запрос при помощи массива вида array(":name" => $name, ":todo" => $todo). Т.е. тут позиция параметра задана явна, вы можете перемешать элементы в массиве как угодно, например пустить вначале :todo, а потом :name - они будут подставлены верно, так как "позиции параметров заданы явно" за счет использования именования параметров.

  Ответить  
 
 автор: skinny   (17.11.2012 в 22:04)   письмо автору
 
   для: cheops   (16.11.2012 в 23:00)
 

1. Непонятно что такое PEAR’s DB, для чего оно и вообще, где нибуть есть какое нибуть описание на русском. Аглицкий я читаю, но там слишком много технических терминов.

2. Как можно обойти принудительное приведение и mysql_real_escape_string()?

3. Что значит "позиция параметров явно задана". Это пожалуй самый главный вопрос. Я вообще не могу представить что это может значить. Даже приблизительно.

  Ответить  
 
 автор: cheops   (16.11.2012 в 23:00)   письмо автору
 
   для: skinny   (16.11.2012 в 13:10)
 

Можно попробовать разъяснить вопросы, дать на них развернутые ответы, но для этого их нужно озвучить. Попробуйте на основании прочитанного, сформулировать их еще раз. Что не понятно в первую очередь?

  Ответить  
 
 автор: skinny   (16.11.2012 в 13:10)   письмо автору
 
   для: cheops   (16.11.2012 в 07:41)
 

что то я всё прочитал, но вопросы всё те же и остались
ничего не понял.

  Ответить  

Сообщения:  [1-10]   [11-15] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования