Способы предотвратить SQL Injection Attack & XSS в веб-приложении Java

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

Сама файловая система overlay2 задокументирована как требующая xfs с ftype = 1 или ext4 в качестве вспомогательной файловой системы, а не NFS.

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

  # create a reusable volume
  $ docker volume create --driver local \
      --opt type=nfs \
      --opt o=nfsvers=4,addr=nfs.example.com,rw \
      --opt device=:/path/to/dir \
      foo

  # or from the docker run command
  $ docker run -it --rm \
    --mount type=volume,dst=/container/path,volume-driver=local,volume-opt=type=nfs,\"volume-opt=o=nfsvers=4,addr=nfs.example.com\",volume-opt=device=:/host/path \
    foo

  # or to create a service
  $ docker service create \
    --mount type=volume,dst=/container/path,volume-driver=local,volume-opt=type=nfs,\"volume-opt=o=nfsvers=4,addr=nfs.example.com\",volume-opt=device=:/host/path \
    foo

  # inside a docker-compose file
  ...
  volumes:
    nfs-data:
      driver: local
      driver_opts:
        type: nfs
        o: nfsvers=4,addr=nfs.example.com,rw
        device: ":/path/to/dir"
  ...
12
задан arya 27 January 2009 в 20:39
поделиться

6 ответов

На основе Ваших вопросов я предполагаю, что Вы пытаетесь к фильтрации плохих значений. Я лично чувствую, что этот метод может стать очень сложным очень быстро и рекомендовал бы кодовые значения как альтернативный метод. Вот статья IBM о предмете, который размечает за и против обоих методов, http://www.ibm.com/developerworks/tivoli/library/s-csscript/.

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

7
ответ дан 2 December 2019 в 21:04
поделиться

При попытке санировать все данные по входу, Вы собираетесь очень перенести трудности его. Существуют тонны приемов, включающих кодировку символов и таким образом, который позволит людям обходить Ваши фильтры. Этот впечатляющий список является только некоторыми бесчисленными вещами, которые могут быть сделаны как Внедрения SQL. Вы также добрались для предотвращения инжекции HTML, инжекции JS и потенциально других. Единственный верный способ сделать это состоит в том, чтобы закодировать данные, где это используется в Вашем приложении. Закодируйте весь вывод, который Вы пишете в свой веб-сайт, кодируете все свои параметры SQL. Будьте особенно осторожны с последним, поскольку нормальное кодирование не будет работать на нестроку параметры SQL, как объяснено в той ссылке. Используйте параметризированные запросы для сейфа. Также обратите внимание, что Вы могли теоретически закодировать свои данные в то время, когда пользователь вводит их, и сохраните закодированный в базе данных, но который только работает, если Вы всегда собираетесь быть использованием данных способами, которые используют тот тип кодирования (т.е. кодирование HTML, если они будут только когда-либо использоваться с HTML; если это используется в SQL, Вы не собираетесь быть защищенными). Это частично, почему эмпирическое правило никогда не состоит в том, чтобы хранить закодированные данные в базе данных и всегда кодировать на использовании.

3
ответ дан 2 December 2019 в 21:04
поделиться

Проверка и привязка всех данных являются необходимостью. Выполните и клиентскую и серверную сторону validatation, потому что 10% людей выключают JavaScript в их браузерах.

У Jeff Atwood есть хороший блог о теме, которая дает Вам разновидность для ее сложности.

2
ответ дан 2 December 2019 в 21:04
поделиться

Вот довольно обширная статья об этом очень подвергающемся.

Я не думаю, что у Вас будет Святой Грааль здесь все же. Я также предложил бы пытаться кодировать/декодировать полученный текст некоторыми стандартными способами (Uuencode, base64)

1
ответ дан 2 December 2019 в 21:04
поделиться

Смотрите на проект AntiSamy [www.owasp.org]. Я думаю, что это точно, что Вы хотите; можно установить фильтр для блокирования определенных тегов. Они также предоставляют шаблоны политики, slashdot политика была бы хорошим началом, затем прибавила бы теги, которых Вы требуете.

Кроме того, существует богатство знания о веб-сайте www.osasp.org об обеспечении Вашего приложения.

Что пользователь 'Немо' говорит об использовании подготовленных операторов, и кодирование должно также быть выполнено.

0
ответ дан 2 December 2019 в 21:04
поделиться

не фильтруйте или значения блока.

  1. необходимо удостовериться, чтобы при объединении битов текста Вы сделали надлежащие преобразования типов :) т.е.: если у Вас есть часть строка, которая является типом HTML и строка, которая является ТЕКСТОМ типа, необходимо преобразовать ТЕКСТ в HTML вместо того, чтобы вслепую связать их. в haskell можно удобно осуществить это с системой типов.

хорошие языки шаблонной обработки HTML выйдут по умолчанию. при генерации XML/HTML затем иногда, лучше использовать инструменты DOM, чем язык шаблонной обработки. при использовании инструмента DOM затем, он удаляет много этих проблем. к сожалению, инструмент DOM обычно является дерьмом по сравнению с шаблонной обработкой :)

  1. при взятии строк типа HTML от пользователей, необходимо санировать его с библиотекой для удаления всех не - хорошие теги/атрибуты. существует много хороших фильтров HTML белого списка там.
  2. необходимо всегда использовать параметризированные запросы. ВСЕГДА! если необходимо расти, запросы динамично затем создают их динамично с параметрами. никогда не объединяйтесь не-SQL ввел строки с введенными строками SQL.
1
ответ дан 2 December 2019 в 21:04
поделиться
Другие вопросы по тегам:

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