среда, 8 февраля 2012 г.

PHP febr.8.

<script>...NEVER PUT UNTRUSTED DATA HERE...</script>
<!--...NEVER PUT UNTRUSTED DATA HERE...-->
<div ...NEVER PUT UNTRUSTED DATA HERE...=test />
<NEVER PUT UNTRUSTED DATA HERE... href="/test" />
<style>...NEVER PUT UNTRUSTED DATA HERE...</style>



function check($str) /// Ievades un datu pārbaude
{
    $str = stripslashes($str);
    $str = htmlentities($str, ENT_QUOTES, 'UTF-8');
    $str = str_replace("../'", '&#39;', $str);
    $str = str_replace("./'", '&#39;', $str);
    $str = str_replace(".\'", '&#39;', $str);
    $str = str_replace("..\'", '&#39;', $str);
    $str = str_replace("\'", '&#39;', $str);
    $str = str_replace('\r\n', '<br/>', $str);
    $str = str_replace('\\', "&#92;", $str);
    $str = str_replace('|', 'I', $str);
    $str = str_replace('||', 'I', $str);
    $str = str_replace('/\\\$/', '&#36;', $str);
    $str = str_replace('[l]http://', '[l]', $str);
    $str = str_replace('[l] http://', '[l]', $str);
    $str = mysql_real_escape_string($str);
    return $str;
}

preg_replace('[^A-z0-9\s-+...
preg_replace('[^A-z0-9\s]','',$mainigais);
----------------------------------------------------------

<?php
error_reporting
(E_ALL E_STRICT);
/* data actually came from POST
$_POST = array(
    'product_id'    => 'libgd<script>',
    'component'     => '10',
    'versions'      => '2.0.33',
    'testscalar'    => array('2', '23', '10', '12'),
    'testarray'     => '2',
);
*/

$args = array(
    
'product_id'   => FILTER_SANITIZE_ENCODED,
    
'component'    => array('filter'    => FILTER_VALIDATE_INT,
                            
'flags'     => FILTER_REQUIRE_ARRAY
                            
'options'   => array('min_range' => 1'max_range' => 10)
                           ),
    
'versions'     => FILTER_SANITIZE_ENCODED,
    
'doesnotexist' => FILTER_VALIDATE_INT,
    
'testscalar'   => array(
                            
'filter' => FILTER_VALIDATE_INT,
                            
'flags'  => FILTER_REQUIRE_SCALAR,
                           ),
    
'testarray'    => array(
                            
'filter' => FILTER_VALIDATE_INT,
                            
'flags'  => FILTER_REQUIRE_ARRAY,
                           )

);

$myinputs filter_input_array(INPUT_POST$args);

var_dump($myinputs);
echo 
"\n";
?>
----------------------------------------
$myinputs filter_var_array($data,FILTER_SANITIZE_STRING); 


FILTER_SANITIZE_STRING: По умолчанию данный фильтр удаляет любую некорректную или не разрешенную информацию в строке. Например, она удалит любые тэги HTML вроде <strong> или <script> из входящей строки:

 $value = '<script>alert('TROUBLE HERE');</script>'; echo filter_var($value, FILTER_SANITIZE_STRING);

FILTER_SANITIZE_ENCODED: Многие программисты используют функцию urlencode(). Данный фильтр по сути выполняет те же функции. Например, следующий пример выполнит кодирование любых спецсимволов и пробелов во входящей строке:

 $value = '<script>alert('TROUBLE HERE');</script>'; echo filter_var($value, FILTER_SANITIZE_ENCODED); 

Скрипт закодирует пунктуацию, пробелы, скобки и вернет следующее:

 %3Cscript%3Ealert%28%27TROUBLE%20HERE%27%29%3B%3C%2Fscript%3E 

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

 $value = '<script>alert('TROUBLE HERE');</script>'; echo filter_var($value, FILTER_SANITIZE_SPECIAL_CHARS); 

Произойдет конвертация спецсимволов в их HTML-сущности:

 <script>alert('TROUBLE HERE');</script>










Комментариев нет:

Отправить комментарий