is_numeric('0x123abc') === FALSE
$_GET['id']
злодей подсовывает нечто. Куда дальше это значение идёт, как проверяется? Строка "0x123abc" на проверке is_numeric() даёт false
. Если дальше вы отвергаете и не обрабатываете такой запрос, всё в порядке. $hex = hex2bin("31206f72206e756d5f626c6f6b203d203231");
var_dump($hex);
// 1 or num_blok = 21
var s = '31206f72206e756d5f626c6f6b203d203231', out = [], i;
for( i = 1; i < s.length; i+=2) out.push( String.fromCharCode( parseInt( s.substr(i-1,2), 16)));
out.join("") // 1 or num_blok = 21
parseInt( '0x32', 16)
. На SQL просто SELECT 0x32;
31206f72206e756d5f626c6f6b203d203231
даёт совершенно осмысленный код 1 or num_blok = 21
0x32
– текст, цифру «2». Точно так же 0x53
вам даст заглавную букву "S", например. select * from tables where id_banner = 50
? context.fillRect(0, 0, canvas.width, canvas.height);
и потом заново станете рисовать. Сам элемент canvas вряд ли всё перерисовывает при drag. "site.ru/%XXX%.jpg"
и вы в ней заменяете эту уникальную подстроку %XXX%
– можно выдумать любую, лишь бы её не было в «настоящей» строке – на очередное число. Заменить в строке А на Б с помощью метода replace( что, на что)tmpl.replace( '%RANDOM%', Selected.pop())
берёт строку из переменной tmpl
и заменяет в ней подстроку %RANDOM%
на второй аргумент – Selected.pop()
. pop() «забирает» из массива Selected
последний элемент - массив при этом становится короче.
is_numeric('0x123abc')
вернёт FALSE.