Чистка PHP инклуд.

Discussion in 'PHP' started by TheRaD, 7 Oct 2011.

  1. TheRaD

    TheRaD New Member

    Joined:
    7 Apr 2011
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Дело такое:
    У меня есть сайт, высокий тиц, хорошее сео и т.д.
    Человек хочет купить ссылки у меня на сайте и просит,чтобы я разместил php код у себя на сайте, чтобы самостоятельно обновлять иногда...

    Вопрос: Как можно обезопасить php инклуд, чтобы он могу только вставлять <a href=> и не смог заинклудить вредоносный код ?

    Скрипт скоро прикреплю.
     
  2. -=Zhenek=-

    -=Zhenek=- Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    делать не инклуд, а допустим по крону курлом получать раз в час ссылку. И ругеляркой вырезать оттуда все теги кроме <a> ну и резать всякие onmouseon и т.д
     
  3. Melfis

    Melfis Elder - Старейшина

    Joined:
    25 Apr 2011
    Messages:
    505
    Likes Received:
    105
    Reputations:
    53
    Проверять то, что он тебе присылает. Причём не делать инклюдов для него, а делать file_get_contents('http://урла до его линков');
    PHP:
    $links "<a href='http://ya.ru/index.php?id=2#sdf'>текст text</a>
        <a href='http://ya.ru/index.php?id=3'>asd</a>"
    ;
    preg_match_all('/<a\s+href=(?:"|\')http:\/\/ya\.ru\/[\w-\.\=\?#]+(?:"|\')>[\wа-яА-ЯёЁ\s\.]+?<\/a>/ms'$links$match);
    for (
    $i 0$i count($match[0]); $i++) {
        echo 
    "<div class='llll'>";
        echo 
    $match[0][$i] . "<br />";
        echo 
    "</div>";
    }
    ya\.ru
    Домен партнёра.
    Линка вида
    <a href='http://ya.ru/index.php?id=2'>текст text.- _ блабла</a>
    где index.php?id=2 может быть и page.html?d=asdf_-234
     
    1 person likes this.
  4. TheRaD

    TheRaD New Member

    Joined:
    7 Apr 2011
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Опробую, спасибо. Забыл я про "file_get_contents()"...)