Как я могу безопасно связать и использовать базы данных MySQL с веб-страницей, использующей PHP? - PullRequest
0 голосов
/ 19 марта 2019

Я знаю, что это вопрос новичка, но я не нашел хороших учебников / советов, поэтому StackOverflow был моей последней надеждой.

Я новичок в программировании и пытаюсь создать сайт, который используетбаза данных MySQL для хранения данных пользователей, таких как информация для входа в систему, их содержание на сайте и т. д.

Я хотел бы знать, как безопасно и надежно связать базу данных MySQL с моим веб-сайтом и получать / отправлять данныеиз / в него.

Теперь мой сервер выглядит следующим образом:

www 
 |__ public_html (my site html, assets, css and js)
 |__ php (where I think I should put my php files, outside the public http)

Внутри папки php у меня есть файл config.ini, который содержит адрес БД, имя пользователя ипароль.Также внутри этой папки у меня есть один .php файл, который выглядит следующим образом:

<?php

function db_connect() {

    static $connection;

    if(!isset($connection)) {
        $config = parse_ini_file('config.ini');
        $connection = mysqli_connect($config['host'],$config['username'],$config['password'],$config['dbname']);

    }

    if($connection === false) {
        return mysqli_connect_error();
    }
    return $connection;
}

Как я могу установить это соединение на своем веб-сайте и использовать его (отправлять / получать данные) безопасным способомтак что меня не атакуют через SQL-инъекцию?

РЕДАКТИРОВАТЬ: я размещаю свой сайт в компании, и версия PHP - 7.2, но я могу изменить его.У меня также есть в папке root больше файлов / папок, которые я не создал, например .bash_profile, php.ini и .gemrc

Ответы [ 2 ]

2 голосов
/ 19 марта 2019

Ваши файлы .php должны быть помещены в папку public_html, чтобы они могли обрабатываться вашим веб-сервером (корневой папкой по умолчанию должно быть public_html).

Подключение БД не имеет ничего общего с внедрением SQLэто строка запроса, на которую нужно обратить внимание.Общая идея заключается в проверке входных данных пользователя перед выполнением запроса.Более подробную информацию можно найти на Как я могу предотвратить внедрение SQL в PHP?

1 голос
/ 19 марта 2019

Этот вопрос очень широкий. В любом случае, как уже говорили другие, вам нужно будет переместить все ваши файлы в каталог public_html, чтобы ваш сайт появился и работал в сети.

Что касается вашей базы данных, вам нужно будет войти в Панель управления или Plesk или что-то еще, что вы используете для создания пользователя вашей базы данных, пароля и другой информации, и убедиться, что вы назначаете пользователю db все необходимые привилегии, необходимые для запуска сайта, такие как Вставка, обновление, удаление и т. д.

Что касается Атаки SQL-инъекций , для этого вам понадобится подготовленный оператор. Лучше всего, если вы можете использовать PHP Portable Data Object (PDO) . Mysqli в порядке, пока вы будете следовать хорошей практике кодирования. SQL-инъекция подробно объясняется здесь ссылка .

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

Многое необходимо сделать с файлами php.ini и .htacess . Вам нужно будет изучить, как защитить ваше веб-приложение, используя файлы .htaccess и php.ini.

Вам нужно будет изучить десятку уязвимостей веб-приложений OWAPS и способы их устранения. OWAPS ссылка

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

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...