проверка переменной

Главные вкладки

Аватар пользователя zman zman 19 января 2010 в 20:58

Добрый вечер.

Беру переменную из $_POST ... как корректно и безопасно проверить её перед записыванием в базу?

Если средствами php то хватит ли

1. перевода в стринг
$name1=$_POST['taxonomy']['tags']['1'];
$name=(string)$name;

2. плюс потом
strip_tags
htmlspecialchars

Комментарии

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 19 января 2010 в 21:01

В друпале целая куча специальных функций, начиная от check_plain() и заканчивая filter_xss(), и даже по этой теме есть статьи, так как вы лентяй, то вот вам ссылка http://drupaldance.com/lessons/secure-code-database-layer

Аватар пользователя zman zman 19 января 2010 в 21:12

уже и не отредактировать ашипки

вот такая очистка приходящих в посте переменных для безопасности достаточна?

$name1=$_POST['taxonomy']['tags']['1'];
$name1=(string)$name1;
$name1=htmlspecialchars(trim(strip_tags ($name1)));

Аватар пользователя zman zman 19 января 2010 в 21:24

как я понял, для простого текста из формы, без разметки достаточным для очистки являяется check_plain ?

Аватар пользователя Demimurych Demimurych 20 января 2010 в 2:21

"zman" wrote:
Беру переменную из $_POST ... как корректно и безопасно проверить её перед записыванием в базу?

Вы не понимаете идеологию Drupal

Вам бы документацию почитать.
начните с from api

Аватар пользователя zman zman 20 января 2010 в 13:25

>Вам бы документацию почитать
вот эту?
http://api.drupal.org/api/drupal/developer--topics--forms_api_reference....
вот послали так послали Smile

>Вы не понимаете идеологию Drupal
местами да, не особо проникся ... собственно ...
пытаюсь сделать более удобное заполнение новости, чуток автоматизировав процесс заполнения,
используя модуль Automatic Nodetitles и опцию Automatically generate the title and hide the title field

в Automatic Nodetitles есть Replacement patterns,
но они не все работают т.к. нужная информация ещё в самой форме
поэтому и приходится брать переменные из формы ...

наверное идейно более правильно брать переменные после обработки формы самим дурпалом,
но тут уже не хватит моей "квалификации" в познаниях пхп со всеми этими новомодными ООП

--------------------------------

собственно вопрос уже закрыт
всё что нужно уже работает
спасибо за помощь

Аватар пользователя zman zman 17 мая 2011 в 11:47

Writing secure code
http://drupal.org/writing-secure-code

Use check_plain or theme('placeholder') for plain text.
Use check_markup or filter_xss for markup containing text.
Use the t() function with @ or % placeholders to construct safe, translatable strings.

+

Drupal Text Filtering Cheat Sheet for Drupal 6
http://drupalscout.com/sites/default/files/article_files/filtering_text_...

+

http://drupal.org/project/striptags_format

http://drupal.org/project/htmLawed
http://drupal.org/project/html2txt
http://drupal.org/project/htmlpurifier