ББ код для вставки изображения в блогах
1.
SkoRoST (19.04.2012 / 17:14)
Здравствуйте)))) подскажите пожалуйста как добавить ББ код для вставки изображения в блогах ротора версии 3.0 ?
ну когда я пишу статью , что б мог сразу изображения вставлять , ну примерно такой код [img=http://адрес картинки][/img]
2.
SkoRoST (20.04.2012 / 20:13)
up ))))))))))))))))
3.
Удаленный (20.04.2012 / 20:17)
Вроде для блогов нужно дописывать код для вставки изображений
4.
SkoRoST (21.04.2012 / 10:59)
Miracle (20 Апреля 2012 / 20:17)
Вроде для блогов нужно дописывать код для вставки изображений
ну я о том же.. может кто то написал? или продает кто нить?
5.
YeachAgBitch (22.04.2012 / 10:04)
function img($img='') {
$img = preg_replace('#\[img\](.+?)\[/img\]#si', '<img src="\1" alt="img" />', $img);
return $img;
}
Добавлено через 01:56 сек.
потом обрабатываешь переменную отвечающую за пост в блоге. вида $msg = img($msg);
6.
SkoRoST (23.04.2012 / 21:47)
YeachAgBitch (22 Апреля 2012 / 10:04)
function img($img='') {
$img = preg_replace('#\[img\](.+?)\[/img\]#si', '<img src="\1" alt="img" />', $img);
return $img;
}
Добавлено через 01:56 сек.
потом обрабатываешь переменную отвечающую за пост в блоге. вида $msg = img($msg);
спасибо , попробую щас
7.
SkoRoST (23.04.2012 / 22:30)
короче этот код
function img($img='') {
$img = preg_replace('#\[img\](.+?)\[/img\]#si', '<img src="\1" alt="img" />', $img);
return $img;
}
я вставил в файл инклудес/фиктионс.пхп
потом в файле blog/blog.php нашел строку
$text = no_br($text);
$text = antimat($text);
$text = smiles($text);
и добавил туда
$text = img($text);
получилось
$text = no_br($text);
$text = antimat($text);
$text = smiles($text);
$text = img($text);
я все правильно сделал? если да , то почему бб код
не работает?
8.
Волан-де-Морт (27.04.2012 / 04:02)
В место [img\](.+?)\[/img\] это [img\](.*?)\[/img\]
9.
Сергей (08.06.2012 / 01:45)
поднимаю тему. меня это тоже интересует. ккак сделать по нормальному?
10.
Андрей (08.06.2012 / 02:26)
Прописал, но картинка как будто не грузит img только остается.. То есть картинки не существует..
11.
Андрей (08.06.2012 / 02:47)
<?php
$msg = preg_replace('#\[img\](.*?)\[/img\]#si', '<img src=\'\1\' alt=\'img\' />', $msg);
?>
По идее должно быть так, но и это не работает, где-то еще дописывать нужно..
12.
ramzes (08.06.2012 / 03:45)
Marsellkin (8 Июня 2012 / 02:47)
<?php
$msg = preg_replace('#\[img\](.*?)\[/img\]#si', '<img src=\'\1\' alt=\'img\' />', $msg);
?>
По идее должно быть так, но и это не работает, где-то еще дописывать нужно..
И сразу на нлавной сайта пиши, "мы раздаем свои куки, не проходите мимо!"
13.
Волан-де-Морт (08.06.2012 / 04:44)
12.
ramzes, на халяву
14.
Дмитрий (08.06.2012 / 05:30)
12.
ramzes, не только куки. Через такую конструкцию можно вставить любой JS код, который выполнить все, что угодно (в рамках того, что умеет сам JS).
15.
Андрей (08.06.2012 / 11:49)
Не понял ребят.. Объясните..
16.
iNeeXT (08.06.2012 / 12:12)
15.
Marsellkin, можно сниффер вставить
17.
ramzes (08.06.2012 / 12:37)
dima.london (8 Июня 2012 / 05:30)
12. ramzes, не только куки. Через такую конструкцию можно вставить любой JS код, который выполнить все, что угодно (в рамках того, что умеет сам JS).
можно и crf проводить
Добавлено через 00:30 сек.
Marsellkin (8 Июня 2012 / 11:49)
Не понял ребят.. Объясните..
уязвимость большая
18.
Сергей (08.06.2012 / 12:50)
вы лучше подсккажите, как по нормальному сдлеать
19.
Андрей (08.06.2012 / 12:50)
17.
ramzes, спасибо, но я же не в пустую страницу вставлял это значение, а в файле functions, где прописана функция вставки BB-кода.. Или это значения не имеет?
20.
ramzes (08.06.2012 / 12:53)
Marsellkin (8 Июня 2012 / 12:50)
17. ramzes, спасибо, но я же не в пустую страницу вставлял это значение, а в файле functions, где прописана функция вставки BB-кода.. Или это значения не имеет?
не важно. вместо картинки тебе могут вставить кучу нехорошего кода и он исполнится
21.
Андрей (08.06.2012 / 12:54)
20.
ramzes, Спасибо!!
22.
Дмитрий (08.06.2012 / 12:57)
19.
Marsellkin, такой код пропустит даже образ картинки. То есть собственно даже картинки самой не будет. Только имя, а содержимое образа - JS.
23.
Андрей (08.06.2012 / 13:07)
22.
dima.london, я не понимаю в этом, спасибо что предупредили.. Просто когда тему поднимали, все молчали по поводу уязвимости..
24.
ramzes (08.06.2012 / 13:26)
23.
Marsellkin, тут таких тем уже штук 10 было.
необходимо перед вставкой удостовериться что файл действительно файл и действительно картинка
плюс сделать ресайз, а то кто ни будь запилит в пост штук 100 картинок по 2гига каждая, и привет))
25.
Олег (08.06.2012 / 13:50)
Через
BB код изображение тогда тоже можно взломать?
26.
Сергей (08.06.2012 / 14:22)
Oleg (8 Июня 2012 / 13:50)
Через BB код изображение тогда тоже можно взломать?
27.
ramzes (08.06.2012 / 14:35)
Oleg (8 Июня 2012 / 13:50)
Через BB код изображение тогда тоже можно взломать?
ты мне функцию покажи, я не буду искать ее в 40кб постороннего кода
28.
Андрей (08.06.2012 / 14:40)
27.
ramzes, Вспомогательный код
<?
function img_replaces($m) {
$m = str_replace("http://","",$m);
$file = 'http://' . $m['1'] . '';
$size = getimagesize ("$file");
$ext = strtolower(substr($file, 1 + strrpos($file, ".")));
$ext2 = array("gif", "jpg", "png", "jpeg");
if (in_array($ext, $ext2)) {
if ($size['0'] > '100' || $size['1'] > '100'){
echo '<br><img src="http://' . $m['1'] . '" width="100" height="100" alt="' . $m['2'] . '"><br>';
}else{
echo '<br><img src="http://' . $m['1'] . '" alt="' . $m['2'] . '"><br>';
}
echo '<a href="http://' . $m['1'] . '">Скачать</a> ['.$size['0'].'x'.$size['1'].']<br>';
}else{
echo '' . $file . '';
}
}
function url_replace($m) {
if( !isset($m[3]) ) {
return '<a href="' . $m[1] . '">' . $m[2] . '</a>';
} else {
return '<a href="' . $m[3] . '">' . $m[3] . '</a>';
}}
?>
Функция вставки кода
<?
$message = preg_replace_callback('~\\[img=(http://.+?)\\](.+?)\\[/img\\]~', 'img_replaces', $message);
?>
29.
Изнаур (08.06.2012 / 14:41)
ramzes (8 Июня 2012 / 14:35)
ты мне функцию покажи, я не буду искать ее в 40кб постороннего кода
<?
function img_replaces($m) {
$m = str_replace("http://","",$m);
$file = 'http://' . $m['1'] . '';
$size = getimagesize ("$file");
$ext = strtolower(substr($file, 1 + strrpos($file, ".")));
$ext2 = array("gif", "jpg", "png", "jpeg");
if (in_array($ext, $ext2)) {
if ($size['0'] > '100' || $size['1'] > '100'){
echo '<br><img src="http://' . $m['1'] . '" width="100" height="100" alt="' . $m['2'] . '"><br>';
}else{
echo '<br><img src="http://' . $m['1'] . '" alt="' . $m['2'] . '"><br>';
}
echo '<a href="http://' . $m['1'] . '">Скачать</a> ['.$size['0'].'x'.$size['1'].']<br>';
}else{
echo '' . $file . '';
}
}
function url_replace($m) {
if( !isset($m[3]) ) {
return '<a href="' . $m[1] . '">' . $m[2] . '</a>';
} else {
return '<a href="' . $m[3] . '">' . $m[3] . '</a>';
}}
?>
вот вроде
30.
Дмитрий (08.06.2012 / 14:57)
Oleg (8 Июня 2012 / 12:50)
Через BB код изображение тогда тоже можно взломать?
Легко.
<?
function img_replaces($m) {
$m = str_replace("http://","",$m);
$file = 'http://' . $m['1'] . '';
$size = getimagesize ("$file");
$ext = strtolower(substr($file, 1 + strrpos($file, ".")));
$ext2 = array("gif", "jpg", "png", "jpeg");
if (in_array($ext, $ext2)) {
if ($size['0'] > '100' || $size['1'] > '100'){
echo '<br><img src="http://' . $m['1'] . '" width="100" height="100" alt="' . $m['2'] . '"><br>';
}else{
echo '<br><img src="http://' . $m['1'] . '" alt="' . $m['2'] . '"><br>';
}
echo '<a href="http://' . $m['1'] . '">Скачать</a> ['.$size['0'].'x'.$size['1'].']<br>';
}else{
echo '' . $file . '';
}
}
1. Как мы видим, размер картинки проверяется, но не с целью обезопасить, а с целью красиво вывести на экран.
2. Вес картинки не проверяется совсем.
3. Наличие файла не проверяется совсем.
4. Проверяется только расширение, но его легко подделать.
5. Да и вообще тут подход крайне неверный. Если картинок на странице много, это нагрузит сервер. Грубо говоря, ему надо будет открыть и произвести все вышеперечисленные мной действия. А если страницу смотрит много людей - Error 504 обеспечено.
Резюме: Криво, косо, дыряво. Написано 90-летним индусом.
31.
ramzes (08.06.2012 / 15:13)
dima.london (8 Июня 2012 / 14:57)
4. Проверяется только расширение, но его легко подделать.
каким образом? если это не будет картинкой то getimagesize не вернет его миме тип
32.
Дмитрий (08.06.2012 / 15:32)
31.
ramzes, а если это образ?
Вот сейчас я создам картинку весом 10 байт и размером 1px * 1px с именем ramzes.jpeg и злым содержимым. Как этот код выше ее отфильтрует?
Я чо, я ничо. Можно вообще картинку без размера отдать. Тупо мод-реврайтом сделать красивый адресок с переадресатей на PHP скрипт или JS. В нем подделывается и MIME, и все что угодно... А тот уже выполнится при прикреплении в сообщение подобным кодом.
33.
ramzes (08.06.2012 / 15:34)
32.
dima.london, битность, размеры и прочее ты тоже подделаешь?
покажи
34.
Сергей (08.06.2012 / 17:36)
вот вы бы лучше написали нормальнл..помогли народу
35.
ramzes (08.06.2012 / 18:20)
FleQ (8 Июня 2012 / 17:36)
вот вы бы лучше написали нормальнл..помогли народу
вот возьми и напиши
36.
Сергей (09.06.2012 / 00:25)
я не шарю в PHP с нуля
37.
QuyCuong (26.07.2012 / 05:37)
function url_replace($m) {
global $config;
if (!isset($m[3])) {
$target = (strpos($m[1], $config['home']) === false) ? ' target="_blank"' : '';
return '' . $m[2] . '';
} else {
if ((!preg_match('/\.gif$/i',$m[3])) && (!preg_match('/\.png$/i',$m[3])) && (!preg_match('/\.jpg$/i',$m[3]))){
$target = (strpos($m[3], $config['home']) === false) ? ' target="_blank"' : '';
return '' . $m[3] . '';
}
else return $m[3];
}
}
$msg = preg_replace('#\[img\](.*?)\[/img\]#si', '<img src=\1 height=80 weight=100>
<a href=\1>загрузка</a>', $msg);
38.
Вова (12.10.2012 / 17:39)
переделал з Johncms
http://upwap.ru/2867500
URL:
https://visavi.net/topics/31398