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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Обработка выводимой информации
 
 автор: Whi-teOoS   (22.01.2007 в 16:36)   письмо автору
 
 

Есть допустим функция типо этой

    function ShowTextBoxInRegistrationForm($what,$what_style,$name,$id,$name_style)
    {
        echo("
        <table width=100% border=0 cellpadding=0 cellspacing=0>
            <tr>
                <td width=300 ".$what_style.">
                    ".$what."
                </td>
                <td width=200 align=center>
                    <input class=".$name_style." type='text' size=20 name='".$name."' id='".$id."'>
                </td>
            </tr>
        </table>");
    }


эта функция является методом класса

теперь вопрос =) Надо ли обрабатывать выводимую инфу в браузер (htmlspecialchers'ом к примеру)

ведь вызов будет иметь вид


$this->ShowTextBoxInRegistrationForm("Имя","form_text","user_name","user_name","form_text_box");


а тут вроде ничего дурного нельзя сделать (будет то что мастер написал), или можно? =)

и срезу вопрос (скорее риторический) , как лучше поступать: обрабатывать инфу до добавления в базу или при выводе в браузер?

   
 
 автор: Loki   (22.01.2007 в 16:48)   письмо автору
 
   для: Whi-teOoS   (22.01.2007 в 16:36)
 

а вы поставьте в качестве значения имени

<script>alert('Превед!')</script>

и вопросы сразу отпадут.

обрабатывать лучше перед выводом на экран.

   
 
 автор: Whi-teOoS   (22.01.2007 в 18:03)   письмо автору
 
   для: Loki   (22.01.2007 в 16:48)
 

это я знаю. НО! К вызову ф-ии ведь никто не может получить доступ кроме того создает страницу? или может? собственно вопрос в этом =)

Просто "создатель" ведь не дурак (как правило =) ) и писать то что убьет его стр не будет, а тогда зачем грузить скрипт лишкими действиями типа:


    function MakeSaveText(&$value,$incoming_data,$size)
    {
        $value = substr($incoming_data,0,$size);
        $value = trim(htmlspecialchars(stripslashes($value)));
        return $value;
    }

   
 
 автор: t4f   (22.01.2007 в 18:24)   письмо автору
 
   для: Whi-teOoS   (22.01.2007 в 18:03)
 

Если вопрос про тип доступа к методам класса, то права доступа у метода какие?
public - любой может вызвать метод вне класса
protected - вызвать метод можно как в классе - родителе, так и в классе - потомке.
private - только в том классе, где объявлен метод.
если тип доступа совсем не указан, то считается, что он Public.

а... вопрос не про это был...

   
 
 автор: Loki   (22.01.2007 в 23:55)   письмо автору
 
   для: Whi-teOoS   (22.01.2007 в 18:03)
 

тогда выведите фразу

Здравствуйте, детишки! Сегодня мы поговорим о теге <td>!

   
 
 автор: Whi-teOoS   (23.01.2007 в 01:02)   письмо автору
 
   для: Loki   (22.01.2007 в 23:55)
 

Я знаю чем грозит вывод необработанной инфы, все скрипты, тэги и тп... Это я знаю (я не полный нуб, хотя заскоки порой бывают... Как сейчас например =) ).

Но!

Вопрос состоит в другом.

Т.К. я не знаю на что способны кульцхацкеры, мне интересно можно ли извне (тоесть не мне, создающему динамически страницу, а кому нибудь) получить доступ к этой переменной (выделено жирным):



Class something
{
some_function($this)
{
echo $this;
}
}
$a = new something;
$a->some_function(abra_kadabra);


Знаю что вопрос может быть и идиотский, но все же =)
Заранее пардон, что парю мозги.
Соответственно вопрос в каких случаях, злоумышлениик может получить доступ к переменной (во! надо было так вопрос ставить =) )
Во всех манах написано, что переменные надо обрабатывать и тд и тп, НО! не сказано когда именно (в каких случаях)... Всегда? помоему выходят слишком загруженные скрипты, что плохо влияет на быстродействие...
Короче просветлите мой моск пжлст =)

   
 
 автор: Sergey89   (23.01.2007 в 09:57)   письмо автору
 
   для: Whi-teOoS   (23.01.2007 в 01:02)
 

Да никак они не получат в свои руки контроль над переменной.

   
 
 автор: cheops   (23.01.2007 в 12:12)   письмо автору
 
   для: Whi-teOoS   (23.01.2007 в 01:02)
 

Это зависит от того, откуда переменная abra_kadabra берётся?

   
 
 автор: Whi-teOoS   (23.01.2007 в 16:51)   письмо автору
 
   для: cheops   (23.01.2007 в 12:12)
 

Sergey89 what about... (read next string) =)

cheops не из $_GET[''] , $_POST[''], базы или файла. Получается что то что в этой переменной никак не доступно злоумышленникам, и все на совести автора?

Ох... Чет у меня такое чувство что я туплю жестко...

   
 
 автор: cheops   (24.01.2007 в 00:23)   письмо автору
 
   для: Whi-teOoS   (23.01.2007 в 16:51)
 

Если переменная не проходит через GET, POST, COOKIE и не вбивается пользователем ни на каком из этапов - дополнительная защита не требуется... если преследуют жёсткие приступы паранои - возьмите и поставьте проверку, чтобы не думалось... какие допустимые значения могут быть в abra_kadabra?

   
Rambler's Top100
вверх

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