Xwab
Форумыnavigate_nextНебольшие вопросы по PHP/MySQL

Топ: Небольшие вопросы по PHP
Сообщения
aBSuRD

Netot, без разницы

16 Сен 2011, 9:23
Andris

256bit, допустим если использовать эту функцию:

function pic($bb)
{
$bb = preg_replace( "~\\[img\](.+?)\[/img\]~", "<img src=\"\\1\" alt=\"изображение\" />", $bb );

return $bb;
}

фото можно вставлять с любого сайта тегом [img]. Могут ли произвести XSS атаку?

16 Сен 2011, 11:01
Okula

Могут, между тегами [img] нужно пропускать только ссылку ведущую исключительно на изображение, ты же, в свою очередь, пропускаешь туда всё подряд.
Правда если после использования этой функции отфильтровать текст всё будет нормально, но говнокодом попахивает, так вместо ссылки что угожно можно вставить и бб-код это схавает в лёгкую

16 Сен 2011, 11:04
Andris

Ребят, а вы бы не могли немного подкорректировать до более безопасного вида? Если не трудно конечно. Просто я с ссылками и изображениями в тексте не работал.

16 Сен 2011, 11:09
Fantik

Хорошо если пропускать только изображения с расширением gif, png, jpg и т. д. это не выход походу  Если модрерайтом расширение исправить?

16 Сен 2011, 12:33
Generic

дайте плз простенький ббкод [url=] [/url]

16 Сен 2011, 13:00
SatanHell

Generic, function url($message)
{
$message = preg_replace('#\[url=(http://.+?)\](.+?)\[\/url\]#si', '<a href="\1">\2</a>', $message);

return $message;
}

16 Сен 2011, 13:19
SpAcE

<?php
include '../ini.php'; //там все настройки бд.. которые работают 100%)
// импульсные блоки
$sell = mysql_query("SELECT * FROM`block` ORDER by `id` DESC");

$mass = mysql_fetch_assoc($sell);
echo '
<div id="content2"><p>
<h3>Импульсные блоки питания</h3>

<table>
   <tr>
   <td class="tbname">Наименование</td>
   <td class="tstolb">Фото</td>
   <td class="tstolb">Ток на выходе, А</td>
   <td class="tstolb">Выходное напряжение, V</td>
   <td class="tstolb">Мощность, Вт</td>
   <td class="tstolb">Размеры (д?ш?в), мм</td>
   <td class="tstolb">Цена</td>
   </tr>';
if(mysql_num_rows($sell)==0)
{
//БД не заполнена
echo 'Данные отсутствуют, зайдите позже';
}
else
{
//существуют какие-либо данные
while($mass=mysql_fetch_assoc($sell))
{
echo '
 <tr>
   <td class="tcontent">'.$mass['name'].'</td>
    <td class="tcontent">
   <img src="'.$site.'link/block/'.$mass['foto'].'" alt=""/>
   </td>
   <td class="tcontent">'.$mass['tok'].'</td>
   <td class="tcontent">'.$mass['ugol'].'</td>
   <td class="tcontent">'.$mass['exit'].'</td>
   <td class="tcontent">'.$mass['size'].'</td>
   <td class="tcontent">'.$mass['mosh'].'</td>
   <td class="tcontent">'.$mass['size'].'</td>
   <td class="tcontent">'.$mass['price'].'</td>
   </tr>
      
';
}

}
echo '</table>
</div>';
?>


Почему не выводит данные с бд?
проверял массив он заполняется.
Если в бд пусто выводит то что прописано в условии..но есь там что-то есть то он не в какую не хочет выводить(

17 Сен 2011, 12:40
Sandr

SpAcE, попробуй удалить строку $mass = mysql_fetch_assoc($sell); только ту, что после строки запроса, а не ту, что в цикле.

17 Сен 2011, 13:32
SpAcE

Sandr,  спасибо, работает

17 Сен 2011, 13:54
Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.