Я даже не знаю, с чего начать с этого. Я использую тему, которая требует, чтобы я переопределял настройки сервера php.ini в моем собственном php.ini с помощьюallow_url_include = on
Этот параметр, по крайней мере, кажется угрозой безопасности, по мнению многих (и моего веб-хостинга), в лучшем случае требуется, чтобы некоторые другие пользователи на некоторых других хостах добавили эту строку в свои собственные файлы php.ini, иначе некоторые функции темы не будут работать..
(Некоторые популярные хосты, такие как Bluehost, имеют allow_url_include = on
по умолчанию.)
Кто-нибудь знает, где в теме функции искать, чтобы а) найти то, что требует allow_url_include = on
и б) как начать работу над этим, чтобы изменить его?
Какой-либо из этих типов конструкций виновник?
1)
<?php include "scripts/scripts-google.php";
global $wpdb; ....
2)
<?php
define('ABSPATH', dirname(dirname(dirname(dirname(dirname(dirname(__FILE__)))))).'/');
include_once(ABSPATH.'wp-config.php');
3)
<?php include "scripts/scripts-upload.php"; ?>
4)
function pg_inner_custom_box_1() {
$dir = dirname(dirname(__FILE__));
include($dir.'/admin/gallery/display_galleries.php');
}
5)
<a href="http://www.domain.com/presets/
<?php echo str_replace("-", "_", $presets->preset_name); ?>.jpg" id="single_image">
<img src="http://www.domain.com/presets/
<?php echo str_replace("-", "_", $presets->preset_name); ?>_sm.jpg" style="width:225px;" /></a>
6)
RSS Feed (please include http://)
<input type="text" name="social_rss" size="50" value="<?php echo $social_rss; ?>" />
Чтобы узнать, если тема не работает, если
allow_url_include
она отключена, вы пытались установить для нее значениеfalse
и посмотреть, какие ошибки возникают? (Примечание: вам может потребоваться установитьdefine( 'WP_DEBUG', true )
в wp-config.)Хороший вопрос, но все, что я вижу в теме, это предупреждения jQuery, которые говорят «ошибка http», и никакие ошибки php для URL-адресов не регистрируются, за исключением некоторых ошибок базы данных. Кажется, это как-то связано с загрузчиком изображений JS.
Итак, это немного сужает круг, верно? Эти ошибки убедительно указывают на то, что включение предназначено для скрипта. 🙂 В сообщениях об ошибках указывается URL-адрес скрипта, который выдает ошибки? Может помочь вам сузить, где они находятся в теме…
Я ценю взгляд на этот материал. Я добавил еще два примера http, 5 и 6, если они могут быть проблемой. Это премиум-тема, но если вам это нужно, я могу отправить ее вам по электронной почте. Я поддерживаю тему, и это PITA из-за ошибок, но разработчик говорит, что в этом нет ничего плохого.
В этом нет ничего плохого? Это требует
allow_url_include
, в этом много неправильного.. (без обид, Марк)..В любом случае, зачем включать URL-адрес только для использования внешнего скрипта?
wp_register_script( $name, $src )
Разве сwp_enqueue_script( $name )
ручкой не должно быть все в порядке?предназначен для удаленного включения, например.
include 'http://example.com/someremotefile.php';
… что само по себе достаточно рискованно, это в значительной степени гарантированная точка входа для хакера, если какой-либо пользовательский ввод передается в эти удаленные включения, например.include $somevar_with_user_input;
@ t31os — никто не занят. С моими ограниченными знаниями даже я мог видеть проблемы с темой, прежде чем опубликовать это, но разработчик защищается от этого. Итак, похоже, что № 5 выше — это одна проблема? Вызов этих пресетов из домашнего домена продавца темы?
В этом есть смысл; Я добавил некоторые из найденных конструкций включения. Кто-нибудь из них выглядит проблематично?
Ни одно из этих включений не использует URL-адрес, поэтому меня смущает требование. Также я не вижу смысла в этих вложенных
dirname()
s или в том, чтобы включатьwp-config.php
. Странно, мягко говоряДобавил еще несколько примеров в мой вопрос….
Хорошо, во-первых, это невероятно плохо сделанная тема. Ваш пункт номер 2 указывает мне, что он делает вызовы AJAX совершенно неправильным образом.
Во-вторых, ищите в теме все, что использует http, но не ссылку. По сути, allow_url_include позволяет вам включить PHP с удаленного сайта, что действительно плохо, но он может просто использовать его неправильно.
Если бы тема была в свободном доступе, я мог бы посмотреть на нее и дать вам больше информации. Эта тема доступна для скачивания?
Требование
allow_url_include
кажется довольно странным для темы, я не могу придумать причину, по которой это необходимо.В любом случае, если вы хотите узнать, где это может понадобиться, просмотрите файлы темы на наличие экземпляров
include
,include_once
,require
иrequire_once
поскольку это функции PHP, на которые действует эта директива.