Задать вопрос
@dzhuryn_volodymyr

Насколько скрипт безопасен?

Я написал скрипт который обрабатывает комментарии пользователей и записывает в базу насколько он безопасен
внес некоторые поправки
пример данных

type:a ddComment
parent: 1599
name: Наташа
email: natasha@mail.ru
text: хорошо написано
docId: 26440
cookieImage: 8

$user_id = $modx->user->get('id');
$type = $_GET['type'];

if ($type === 'addComment') {
    $name = $_GET['name'];
    $name = strip_tags($name); // защита от xss
    $name = $modx->runSnippet('Jevix', array(  // защита от xss
        'input' => $name,
        'cfgAllowTags' => 'p'
    ));
    if($name=='')
        return 'поле name не заполнено';

    $email = $_GET['email'];
    $email = strip_tags($email);  // защита от xss
    $email = $modx->runSnippet('Jevix', array( // защита от xss
        'input' => $email,
        'cfgAllowTags' => 'p'
    ));
    if($email=='')
        return 'поле email не заполнено';


    $text = $_GET['text'];
    $text = strip_tags($text);   // защита от xss 
    $text = $modx->runSnippet('Jevix', array(  // защита от xss
        'input' => $text,
        'cfgAllowTags' => 'p'
    ));

    if($email=='')
        return 'поле text не заполнено';

    $docId = $_GET['docId'];
    $docId = intval($docId);
    //проверка на наличие страницы в базе к которой добавляется комментарий
    $page=$modx->getCount('modResource',$docId);
    if($page!==1)
        return 'page is not found';

    $cookieImage = $_GET['cookieImage'];
    $cookieImage = intval($cookieImage);


    $parent = $_GET['parent'];
    $parent = intval($parent);
    //проверка наличия комментария на который отвечают
    if ($parent >= 0) {
        $comment = $modx->getCount('Comments', $parent);
        if ($comment !== 1)
            return 'comment is not found';
    }

    $obj = $modx->newObject('Comments', array(
        'content_id' => $docId,
        'datetime'=>time(),
        'name' => $name,
        'email' => $email,
        'user_id' => $user_id,
        'comment' => $text,
        'img_id' => $cookieImage,
        'parent' => $parent,
        'is_moder' => 0
    ));
    $obj->save();

}
  • Вопрос задан
  • 458 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы