Я пытаюсь решить странную проблему, на которую наткнулся:

Локально и на внешнем сервере я использую одну и ту же веб-среду благодаря Ansible и Vagrant.

Я использую Ubuntu, Apache Webserver, MySQL, PHP 7, Codeigniter 3.

В форме редактирования я вижу на localhost правильные HTML-теги.

localhost

Но когда я открываю ту же страницу из облака (внешнего веб-сервера), HTML-теги дезинфицируются в Chrome и Firefox.

enter image description here

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

0
StandardNerd 10 Ноя 2017 в 17:55

1 ответ

Лучший ответ

Если вы не позаботились о правильной установке CI_ENV либо в вашем файле конфигурации application / config / config.php, либо через apache (либо в .htaccess, либо в apache conf), вы можете получить разное поведение на двух разных машинах.

Вы также должны проверить это значение в application / config / config.php и посмотреть, что для него установлено:

$config['global_xss_filtering'] = FALSE;

Очевидно, что если вы потрудились определить разные значения config.php в этих местах, вам может потребоваться их также проверить:

application/config/development/config.php
application/config/testing/config.php
application/config/production/config.php

В качестве проверки работоспособности вы можете определить такой метод контроллера и посмотреть, выводит ли он разные значения на ваших соответствующих машинах:

public function ci_check() {
    echo CI_ENV;
}

Если вы обнаружите, что машины имеют разные значения CI_ENV, возможно, каждая машина загружает другой файл конфигурации для значения конфигурации global_xss_filtering . Это может вызвать проблему, которую вы видите. Трудно сказать, не увидев большего количества кода.

1
S. Imp 10 Ноя 2017 в 16:36