Как безопасный IP-адрес фильтрует?

Я использую три разных способа предотвращения уязвимости моего веб-приложения для SQL-инъекции.

  1. Использование mysql_real_escape_string(), которое является предопределенной функцией в PHP , и этот код добавляет обратную косую черту к следующим символам: \x00, \n, \r, \, ', " и \x1a. Передайте входные значения в качестве параметров, чтобы свести к минимуму вероятность внедрения SQL.
  2. Самый продвинутый способ - использовать PDO.

Надеюсь, это поможет вам.

Рассмотрим следующий запрос:

$iId = mysql_real_escape_string("1 OR 1=1"); $sSql = "SELECT * FROM table WHERE id = $iId";

mysql_real_escape_string () здесь не защитит. Если вы используете одиночные кавычки ('') вокруг ваших переменных внутри вашего запроса, это то, что защищает вас от этого. Ниже приведено ниже решение:

$iId = (int) mysql_real_escape_string("1 OR 1=1"); $sSql = "SELECT * FROM table WHERE id = $iId";

В этом вопросе есть хорошие ответы.

Я предлагаю , наилучшим вариантом является использование PDO.

Изменить:

mysql_real_escape_string() устарел с PHP 5.5.0. Используйте либо mysqli, либо PDO.

Альтернативой mysql_real_escape_string () является

string mysqli_real_escape_string ( mysqli $link , string $escapestr )

Пример:

$iId = $mysqli->real_escape_string("1 OR 1=1");
$mysqli->query("SELECT * FROM table WHERE id = $iId");

25
задан Ethan 3 March 2010 в 18:35
поделиться

10 ответов

Фильтрация IP лучше чем ничего, но она имеет две проблемы:

  1. IP-адреса могут имитироваться.

  2. , Если внутренняя машина поставилась под угрозу (который включает клиентскую рабочую станцию, например, через установку троянца), тогда взломщик может использовать это в качестве хоста перехода или прокси для нападения на систему.

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

И если это действительно чувствительно, приведите специалиста по безопасности для рассмотрения то, что Вы делаете.

редактирование: несущественно, если Вы можете, угробить regex и использовать что-то как tcpwrappers или функции брандмауэринга в ОС, если это имеет кого-либо. Или, если у Вас может быть различный IP-адрес для Вашего приложения, используйте брандмауэр для блокирования внешнего доступа. (И если у Вас нет брандмауэра тогда, можно также сдаться и послать данные по электронной почте взломщикам:-)

16
ответ дан markus 28 November 2019 в 21:16
поделиться

Я пошел бы с SSL и некоторыми сертификатами или простым именем пользователя / защита паролем вместо фильтрации IP.

12
ответ дан Drejc 28 November 2019 в 21:16
поделиться

Это зависит точно, КАК безопасный Вам действительно нужен он, чтобы быть.

я предполагаю, что Ваш сервер внешне размещен и не подключен через VPN. Поэтому Вы проверяете, что запрос обращается для Вашего HTTPS (Вы используете HTTPS, не так ли??) сайт в сетях Вашей собственной организации.

Используя regex для соответствия сомнительным звукам IP-адресов Вы не можете только использовать сеть/сетевую маску как все остальные?

, Насколько безопасный это должно действительно быть? Спуфинг IP-адреса не легок, имитировавшие пакеты не могут использоваться для установления Подключения HTTPS, если они также не управляют восходящими маршрутизаторами, чтобы позволить возвращаемым пакетам быть перенаправленными взломщику.

при необходимости в нем, чтобы быть действительно безопасными, просто заставьте отдел ИТ устанавливать VPN и маршрут по частному пространству IP-адресов. Настройте свои ограничения IP-адреса для тех частных адресов. Ограничения IP-адреса, где маршрутизация через основанную на хосте VPN, все еще безопасны, даже если кто-то ставит под угрозу восходящий шлюз по умолчанию.

4
ответ дан MarkR 28 November 2019 в 21:16
поделиться

Если это будет ограничено IP-адресом, то, хотя они могут имитировать IP-адрес, они не будут в состоянии получить ответ. Конечно, если это представлено Интернету, это может все еще быть поражено нападениями кроме против приложения.

1
ответ дан Orihara 28 November 2019 в 21:16
поделиться

Если Ваше приложение проверяет IP-адрес, то это чрезвычайно уязвимо. В той точке у Вас нет защиты в маршрутизаторе, который является, где IP, фильтрующий действительно, должен быть. Ваше приложение, вероятно, проверяет Информацию заголовка HTTP на передающий IP-адрес, и это чрезвычайно легко имитировать. Если Вы блокируете IP-адрес вниз в маршрутизаторе, который является другой историей и купит Вас некоторая реальная безопасность о том, кто может получить доступ к сайту от где.

, Если Вы, делают, получает доступ к приложению внутренне, то SSL не купит Вас очень, если Вы не попытаетесь защитить информацию от сторон, внутренних к организации, или Вы требуете клиентских сертификатов. Это предполагает, что Вы никогда не будете получать доступ к сайту от внешнего соединения (VPNs не рассчитывают, потому что Вы туннелируете во внутреннюю сеть и являетесь технически частью его в той точке). Это не причинит ни одному боль и не, что трудно для установки просто не думайте, что это будет решением всех проблем.

4
ответ дан kemiller2002 28 November 2019 в 21:16
поделиться

Моя первая мысль о проблеме ресурса должна была бы спросить, не будет ли возможно работать некоторое волшебство с виртуальной машиной?

Кроме того - если IP-адреса Вы проверяете против, или дюйм/с, которого Вы ЗНАЕТЕ, принадлежит компьютерам, которые, как предполагается, получают доступ к приложению или в локальном диапазоне IP, тогда я не вижу, как это не могло быть достаточно безопасно (я на самом деле использую банкомат подхода similiar на проекте, хотя весьма достоверно важно, чтобы сайт был сохранен "скрытым").

1
ответ дан kastermester 28 November 2019 в 21:16
поделиться

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

я не знаю, какая технология Вы раньше создавали Ваш сайт, но если это - Windows/ASP.net, можно проверить полномочия машины запроса на основе ее учетных данных Windows, когда запрос выполнен.

1
ответ дан Yes - that Jake. 28 November 2019 в 21:16
поделиться

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

0
ответ дан Chris Ballance 28 November 2019 в 21:16
поделиться

Как вся безопасность, это бесполезно на своем собственном. Если действительно необходимо поместить его на стоящий с общественностью веб-сервер, используйте белый список IP, с основной автор имени пользователя/пароля, с SSL, с достойная контрольная установка, с актуальное серверное приложение.

Однако какой смысл того, чтобы иметь сервер быть публично доступным, затем ограничивают его только внутренними IP-адресами? Кажется, что это в основном перестраивает то, что NAT дает Вам бесплатно, и с внутренним единственным сервером, плюс Вы должны волноваться об использовании веб-сервера и подобных.

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

1
ответ дан dbr 28 November 2019 в 21:16
поделиться

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

0
ответ дан 28 November 2019 в 21:16
поделиться
Другие вопросы по тегам:

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