Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Про инъекции / 6 сообщений из 6, страница 1 из 1
14.08.2013, 18:14
    #38366643
deblogger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про инъекции
Возвращаясь к вопросу после которого меня забанили

В процессинговом скрипте в процессе написания преобразования сама собой нарисовалась прикольная фича:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
...
	if(is_array($elem)) {
		$k = htmlentities(key($elem), ENT_QUOTES, "UTF-8");
		$v = $elem[$k];
		$obj->{$names[$cnt]} = $k;
		$obj = obj_traverse($v, ++$cnt, $obj);	
	} else {
...



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

Ну и пользуясь случаем продолжу. Значения фильтруются тупо:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
...
	$value = $link->real_escape_string($value);
	
	switch ( $type ) {
		
		case 1: // tiny int 
		case 16: // bol
			$value = ($value === true) ? 1 : 0;
		break;
		
		case 2: // small int
		case 3: // int
		case 8: // big int, serial
		case 9: // medium int
			$value = intval($value);
		break;

		case 4: // float
		case 5: // double
			$value = floatval($value);
		break;
		
...	

		$value = '"' . trim($value) . '"';
		break;

		default:
		die('Остановлено. Неизвестный тип данных: ' . $type );



real_escape_string непосредственно связана с объектом коннекта, который непосредственно знает о заданной кодировке канала и непосредственно четко ремонтирует неисправные значения.

И никаких пэдэо с параметризацией.
...
Рейтинг: 0 / 0
14.08.2013, 18:34
    #38366677
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про инъекции
авторWarning

This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include:

mysqli_real_escape_string()
PDO::quote()
...
Рейтинг: 0 / 0
14.08.2013, 20:07
    #38366766
deblogger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про инъекции
ScareCrow,

Дожились, ООП от процедуры не отличаем.
...
Рейтинг: 0 / 0
14.08.2013, 20:10
    #38366770
deblogger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про инъекции
Кстати бул неправильно проверяется. Не было возможности напороться, на яве сделано так: общая проверка на число

return !isNaN(parseFloat(n)) && isFinite(n);

и в финале

value = parseInt(value) & 1;
...
Рейтинг: 0 / 0
14.08.2013, 23:05
    #38366917
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про инъекции
debloggerScareCrow,

Дожились, ООП от процедуры не отличаем.
ну тогда покажите что внутри
$link->real_escape_string
...
Рейтинг: 0 / 0
15.08.2013, 02:08
    #38366985
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про инъекции
debloggerхтмл-ентитькаНе могли бы Вы пояснить, о какой такой титьке Вы пишите на форуме по программированию?
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Про инъекции / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]