Я должен позволить 'allow_url_fopen' в PHP?

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

Например, ниже - класс ученика, который будет использовать его в нашем коде.

public class Student {

    private int id;

    public int getId() {
        return this.id;
    }

    public setId(int newId) {
        this.id = newId;
    }
}

Приведенный ниже код дает вам исключение с нулевым указателем.

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}

Поскольку вы используете Obj_Student, но вы забыли инициализировать его, как в правильном коде, показанном ниже:

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student = new Student();
            obj_Student.setId(12);
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}
33
задан Kev 6 June 2015 в 02:05
поделиться

5 ответов

Вы определенно хотите allow_url_include набор к Прочь, который снижает многие риски allow_url_fopen также.

, Но потому что не все версии PHP имеют allow_url_include, лучшая практика для многих должна выключить fopen. Как со всеми функциями, действительность - то, что, если Вам не нужен он для Вашего приложения, отключите его. При необходимости в нем вихревой модуль, вероятно, может сделать это лучше, и рефакторинг приложения для использования завихрения для отключения allow_url_fopen может удержать наименее решительного взломщика.

17
ответ дан 27 November 2019 в 18:38
поделиться

Я думаю, что ответ сводится, как хорошо Вы доверяете своих разработчиков для использования функции ответственно? Данные из внешнего URL нужно рассматривать как какой-либо другой недоверяемый вход и, пока это понято, каково грандиозное предприятие?

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

20
ответ дан 27 November 2019 в 18:38
поделиться

Атаки с использованием кросс-сайтовых сценариев являются болью, таким образом, это - голосование против. И Вы должны абсолютно иметь" allow_url_include" набор к прочь, или Вы будете в для мира вреда.

2
ответ дан 27 November 2019 в 18:38
поделиться

Это зависит от типа разработки. Если Ваша разработка прототипа, затем включающая 'allow_url_fopen', прекрасна однако нет значительного различия в скорости между libcurl и file_get_contents, и включение его является только вопросом удобства.

Для рабочих серверов любой вызов к libcurl должен быть отмечен для проверки защиты. Как должен fopen и file_get_contents, если 'allow_url_fopen' включен. Отключение 'allow_url_fopen' не предотвращает использование, оно незначительно ограничивает количество способов, которыми они могут быть сделаны.

2
ответ дан 27 November 2019 в 18:38
поделиться

Большая проблема в том, что allow_url_fopen не более защищен , поэтому, если вы хотите сохранить файл с URL-адреса с помощью curl, вы должны перейти от fopen / file_get, чтобы сохранить файл.

  • CURL хорош только для получения удаленного содержимого из URL. (allow_url_fopen не обязательно)
  • CURL необходимо добавить с помощью Fopen или File_get, если вы хотите сохранить удаленный файл на ваш сервер. (allow_url_fopen обязательно с CURL)

Php должен найти другие способы сделать его более защищенным.

-3
ответ дан 27 November 2019 в 18:38
поделиться
Другие вопросы по тегам:

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