Основы
Давайте разберемся, как работает PHP;когда вы пишете код PHP, то есть код, который находится в пределах <?php ... ?>
, он будет выполняться на сервере, в данном случае ваш экземпляр XAMPP.
Это означает, что всякий раз, когда пользователь заходит на сайт, он / онафактически не сможет увидеть код, который вы написали, скорее, они увидят рендер этого кода.
Рендеринг будет любым после echo
, print_r
, var_dump
или за его пределами.из ваших скобок PHP.
При подключении к вашей базе данных есть определенные шаги, которые вы можете предпринять, чтобы обезопасить ее, однако в действительности это не нужно.Смотрите не дальше, чем система Eloquent от Laravel.Фактическая информация о вашей базе данных полностью хранится в вашем файле .env
.
Примеры
Теперь, когда вы разрабатываете с учетом безопасности, вы должны быть осторожны, есть важные правила, о которых следует помнить:
- Всегда фильтровать пользовательский ввод
Этот должен быть заданным;но изо дня в день новый веб-сайт взламывают, потому что входные данные не были отфильтрованы должным образом, что позволило кому-либо внедрить код в сценарий - будь то экземпляр SQL или интерфейсный код JavaScript.
Один отличный способвсегда бросать то, что вы на самом деле ищете;PHP - это слабый язык типов.Это означает, что '1' == 1
.('1'
- строка, а 1
- целое число)
Один из способов обойти это - типы приведения при работе с пользовательским вводом.Знайте, что вам нужно в вашей базе данных.Будь то строка, целое число или логическое значение.Это позволит вам быть уверенным, что запрос к базе данных выполняется только с правильными типами.
Например:
$var = (integer) 'Hello';
var_dump($var); // returns `int(0)`
Использованные подготовленные операторы
Они не так сложны, и они очень просты, когда речь заходит о безопасности - это один из лучших способов использовать данные пользователя, не вставляя их непосредственно в одно из них.из ваших SQL-запросов.
Пример очень плохого запроса:
$sql = 'SELECT * FROM users WHERE id = ' . $id;
$query = $connection->query($sql);
Что вы должны выбрать:
$sql = 'SELECT * FROM users WHERE id = ?';
$stmt = $connection->prepare($sql);
$stmt->bind_param('i', $id);
$stmt->execute();
Пожалуйста, подробнее здесь .
Заключительные мысли
Кажется, вы все еще новичок в программировании.Хорошо, что вы заботитесь о безопасности, поскольку это один из самых важных столпов отличного веб-приложения.Тем не менее, моя окончательная рекомендация - начать с основ.Изучите культуру PHP, узнайте и поймите, как работает PHP, тогда, когда речь заходит о безопасности, вы сможете достичь гораздо большего.
Наряду с PHP вы узнаете об Apache и о том, как делаются запросы, полностью разбираетесьHTTP-запросы, и это даст вам лучшее понимание того, что нужно учитывать при создании безопасного приложения.У вас может быть самый большой код PHP в мире, но если ваши HTTP-протоколы не используют SSL, то любой запрос, отправляемый на ваш сервер, находится в plaintext
, чтобы весь мир мог его увидеть.