Поместите процесс в песочницу, где это может причинить наименьшее количество вреда

Вы можете использовать ISNULL и NULLIF также в этом случае: ниже код должен работать:

CREATE PROCEDURE spTest
    @Name varchar(20) = '',
    @Address varchar(100) = '',
    @City varchar(50) = '',
    @Pin varchar(50) = ''
AS
    SET @Name=NULLIF(@Name,'')
    SET @Address=NULLIF(@Address,'')
    SET @City=NULLIF(@City,'')
    SET @Pin=NULLIF(@Pin,'')

    SELECT * 
    FROM Test_Table 
    WHERE Name = ISNULL(@Name,Name)
    AND Address = ISNULL(@Address,Address)
    AND City = ISNULL(@City,City)
    AND Pin = ISNULL(@Pin,Pin)

GO
23
задан 8 revs 26 September 2008 в 11:00
поделиться

9 ответов

Mac OS X имеет средство песочницы под кодовым названием Ремня безопасности. Общедоступный API для него документируется в песочницу (7), sandbox_init (3), и связанные страницы руководства. Общедоступный API несколько ограничен, но само средство очень мощно. В то время как общедоступный API только позволяет Вам выбрать из некоторых предопределенных песочниц (например, основанные на сокетах сети “All являются prohibited”), можно также использовать более мощную конкретную реализацию, которая позволяет Вам определять точно, какие ресурсы операционной системы доступны через подобный Схеме язык. Например, вот выборка песочницы, используемой для portmap:

(allow process-exec (regex #"^/usr/sbin/portmap$"))
(allow file-read-data file-read-metadata (regex
    #"^/etc"
    #"^/usr/lib/.*\.dylib$"
    #"^/var"
    #"^/private/var/db/dyld/"
    #"^/dev/urandom$"))
(allow file-write-data (regex
    #"^/dev/dtracehelper$"))

Вы видите много песочниц, используемых системой в/usr/share/sandbox. Легко экспериментировать с песочницами при помощи должностного лица песочницы (1) команда.

Для Windows, можно хотеть взглянуть на доклад David LeBlanc’s “Practical Sandboxing”, сделанный в Black Hat США 2007 . Windows не имеет никакой встроенной технологии игры в песочнице по сути, таким образом, методы описали, усиливают неполный механизм, начатый с Windows 2000 под названием БОЛЕЕ БЕЗОПАСНЫЙ. При помощи ограниченных маркеров можно создать процесс, который имеет ограниченный доступ к ресурсам операционной системы.

Для Linux, Вы могли бы исследовать сложный механизм SELinux: SELinux домой , ПРАКТИЧЕСКОЕ РУКОВОДСТВО . Это используется Red Hat, например, для укрепления некоторых системных служб в некоторых их продуктах.

14
ответ дан Trance Diviner 29 November 2019 в 02:28
поделиться

Для Windows в Google Chrome существует песочница. Можно хотеть исследовать его. Это использует либеральную подобную BSD лицензию.

Для Linux был бы старый добрый chroot или более сложен http://plash.beasts.org/wiki/ .

OS X, так как Leopard имеет некоторую подобную SELinux защиту в наличии.

7
ответ дан Paweł Hajdan 29 November 2019 в 02:28
поделиться

Сайт codepad.prg имеет пользу ["приблизительно" 111] страница о том, как они безопасно позволяют выполнение любых фрагментов кода..

Выполнение кода обрабатывается супервизором на основе geordi. Стратегия состоит в том, чтобы выполнить все под ptrace со многими системными вызовами, запрещенными или проигнорированными. Компиляторы и заключительные исполняемые файлы оба выполняются в chroot тюрьме со строгими пределами ресурса. Супервизор записан в Haskell.

, Когда Ваше приложение является удаленным выполнением кода, необходимо ожидать проблемы безопасности. Вместо того, чтобы полагаться просто на chroot и ptrace супервизор, я принял некоторые дополнительные меры предосторожности:

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

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

5
ответ дан dbr 29 November 2019 в 02:28
поделиться

На окнах (2000 и позже) можно использовать объекты Job ограничить процессы.

2
ответ дан Anders 29 November 2019 в 02:28
поделиться

FreeBSD имеет определенное понятие тюрьмы , и Солярис имеет контейнеры . В зависимости от того, что Вы ищете, они могут помочь.

chroot тюрьмы могут помочь ограничить то, что приложение может сделать (хотя любое приложение с полномочиями пользователя root может выйти из тюрьмы), и они доступны на большей части UNIXen, включая OS X.

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

2
ответ дан Dan Udey 29 November 2019 в 02:28
поделиться

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

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

2
ответ дан dj_segfault 29 November 2019 в 02:28
поделиться

Для Linux, существует AppArmor. К сожалению, проект находится несколько на паузе.
Другая альтернатива игры в песочнице VServer, который использует виртуализацию.

1
ответ дан Torsten Marek 29 November 2019 в 02:28
поделиться

Я не эксперт по теме, но я думаю, что стандартный ответ для Linux должен определить политику SeLinux с правильными возможностями процесса.

0
ответ дан TokenMacGuy 29 November 2019 в 02:28
поделиться

Обычно любой виртуальный частный сервер подойдет:

Linux VServer http://linux-vserver.org/Welcome_to_Linux-VServer.org

Parallels Virtuozzo Containers http://www.parallels.com/products/pvc/

и, как уже упоминалось, FreeBSD и Solaris имеют собственные реализации.

О. на самом деле я заметил, что вы просите его работать на любой ОС. Ну, это может быть немного сложнее, так как я думаю, что меньше усилий - это просто повторно использовать виртуальную машину, которая может поддерживать некоторый уровень песочницы, например:

  • Java
  • .NET
0
ответ дан NothingLikeGuru 29 November 2019 в 02:28
поделиться
Другие вопросы по тегам:

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