PHP - это серверный язык. Это означает, что когда запрашиваемая страница отправляется обратно клиенту, весь PHP-код обрабатывается и «удаляется». Пока вы единственный, кто может заглянуть в ваши файлы, нет страха.
Сохраняете ли вы его в переменных (env) или нет, не будет иметь ничего общего.
Там нет абсолютно ничего плохого в этом коде;)
Edit:
При выполнении SQL-запрос, однако, вы должны быть осторожны. Часто вы используете пользовательский ввод (URL или POST-данные) для установки определенных значений в запросе. Например:
$sql = 'SELECT * FROM `table` WHERE `id`=' . $_GET['id'];
Переменная $_GET['id']
устанавливается в URL (index.php?id=4
).
Если они меняют значение 4
на бит SQL-запроса, они могут в значительной степени сделать все с вашей базой данных. Это называется SQL injection. Это действительно самая большая угроза веб-приложениям, использующим базу данных.
Имеется несколько исправлений.
- Санируйте вход (убедитесь, что входные данные не содержат синтаксис SQL)
- готовит отчеты
Теперь, я не знаком с PostgreSQL, но, видимо, модуль PHP имеет способность отправлять подготовленные заявления. Это позволяет отправить запрос с неизвестными значениями в качестве вопросительных знаков и после этого отправить значения.
$sql = 'SELECT * FROM `table` WHERE `id`=?';
// send prepared statement
$value = $_GET['id'];
// send the value
Таким образом, база данных может определить, что значение не является запросом.
Как я уже сказал, я не знаком с PostgreSQL, но я уверен, что есть некоторые учебники, которые помогут вам пройти весь путь!
Другой редактировать:
Потому что я хороший парень, я нашел, как это сделать! Вам необходимо использовать функции pg_prepare() и pg_execute(). Как это:
// This is a name to allow the database to identify the prepared statement
$queryname = 'my_query';
// Setting up our query with "empty" values
$sql = "SELECT * FROM `table` WHERE `column`='$1' AND `column`='$2'";
// Setting our values to send afterwards
$values = array(
$_GET['first_value'], // The first value that will replace $1
$_GET['second_value'] // The second value that will replace $2
);
$result = pg_prepare($connection, $queryname, $sql); // Send the query to the database
$result = pg_execute($connection, $queryname, array($value)); // Send the values
Последнее редактирование (Я клянусь):
Если вы решили поместить переменные конфигурации в файле экстерном, позволяет сказать configuration.php, убедитесь, что файл заканчивается расширение .php
. Если вы используете другое расширение, люди могут его найти и увидеть в виде обычного текста. Если используется расширение PHP, они не смогут ничего увидеть, потому что, как я уже сказал, PHP разбирается и удаляется.
Вы можете принять один (!) Ответ, нажав V в левой части ответа. Это заставит людей мотивировать вас отвечать на ваши будущие вопросы. Итак, выберите лучший ответ, пожалуйста. –