Webmaster общности: Predpriemach.com | SearchEngines.bg

    Предпазване от XSS и логване на атакуващия

    Автор: deam0n

    Какво е XSS?
    XSS е съкращение от Cross Site Scripting. Чудите се защо не е CSS? Еми защото CSS вече е запазено от Cascading Style Sheets.

    Как работи XSS?
    Това е начин за инжектиране на код в генериран HTML. Става с помоща на променливите предвани чрез метода GET или при нефилтрирано(непроверено) поле за специални символи, използвани в HTML. Основно XSS се използва за крадене на сесия или куки (coockie)

    Как да се защитим от XSS
    За да успеете да се предпазите от XSS атака, трябва да забраните тези символи:

    < > ( ) { } + ! @ $ % * ..

    Разбира се, ако вашата страница е само HTML няма нужда от притеснение, но ако използвате PHP следните редове ще ви помогнат не само да се предпазите, но и да логнете, кой е провел атаката.

    В началото на вашите PHP страници вмъкнете този код:

    /* начало на кода */
    <?php
    $queryString = strtolower($_SERVER['QUERY_STRING']);
    
    if (strstr($queryString,"<") OR strstr($queryString,">") OR strstr($queryString,"(") OR strstr($queryString,")") OR
    strstr($queryString,"..") OR
    strstr($queryString,"%") OR
    strstr($queryString,"*") OR
    strstr($queryString,"+") OR
    strstr($queryString,"!") OR
    strstr($queryString,"@")) {
    $loc = $_SERVER['PHP_SELF'];
    $ip = $_SERVER['REMOTE_ADDR'];
    $date = date ("d-m-Y @ h:i:s");
    $lfh = "log.txt";
    $log = fopen ( $lfh,"a+" );
    fputs ($log, "Attack Date: $date | Attacker IP: $ip | QueryString: $loc?=$queryString\n");
    fclose($log);
    echo "Вашата атака беше записана!"; exit;
    }
    ?>
    /* Край на кода */

    Така ще направите ввашия сайт по-защитен. За да видите кой и кога е атакувал, прегледайте лога си от:
    [URL] на вашия сайт/log.txt
    В последвствие може да използвате PHP скрипт, който да забрани достъпа до страницата на това IP, което е атакувало.

    Оставете коментар