Может ли параметризованный оператор остановить всю инъекцию SQL?
blockquote>Да, если ваш драйвер базы данных предлагает заполнитель для каждого возможного литерала SQL. У большинства подготовленных драйверов инструкций нет. Скажем, вы никогда не найдете местозаполнитель для имени поля или массива значений. Это заставит разработчика откидываться назад на посылку запроса вручную, используя конкатенацию и ручное форматирование. С предсказанным результатом.
Вот почему я сделал свою Mysql-оболочку для PHP, которая поддерживает большинство литералов, которые могут быть добавлены в запрос динамически, включая массивы и идентификаторы.
Если да, почему еще так много успешных инъекций SQL? Просто потому, что некоторые разработчики слишком глупы, чтобы использовать параметризованные утверждения?
blockquote>Как вы можете видеть, на самом деле просто невозможно, чтобы все задавали ваши запросы, даже если вы «Не тупой.
Существует, вероятно, несколько способов сделать это:
1) UberProject является Ваш JavaProject. Щелкните правой кнопкой по ProgramA-> Build Path-> Use как исходная папка. Щелкните правой кнопкой по ProgramB-> Build Path-> Use как исходная папка. И ProgramA и ProgramB сделают возрастающие сборки к тому же каталогу.
2) Два проекта Java (ProgramA и ProgramB). Можно использовать UberProject в качестве рабочей области затмения, которая была бы самой легкой, или можно использовать внешнюю рабочую область и импортировать ProgramA и ProgramB как внешние проекты.
существуют, вероятно, другие пути также (проект мультимодуля знатока). Ваш выбор, вероятно, зависит от того, есть ли у Вас циклические зависимости между проектами. Должно быть относительно легко попробовать и 1 и 2 и видеть что работы лучше всего для Вас.
У Вас может быть несколько исходных каталогов в единственном проекте, но Ваше описание заставляет его казаться на желание нескольких подпроектов в проекте который затмение не позволяет (насколько я знаю).
, Если Вы действительно просто хотите несколько исходных каталогов, где ProgramA
, ProgramB
, и т.д. содержат только файлы Java и ничто иное, затем можно сделать это относительно легкое. Щелкните правой кнопкой по своему проекту в проводнике пакетов и выберите Build Path -> Configure Build Path...
. В диалоговом окне, которое открывается, удостоверьтесь Java Build Path
, выбран в левой панели, нажмите Source
вкладка, затем нажмите Add Folder...
кнопка. Выберите ProgramA
из списка и повторитесь для ProgramB
, и т.д.
, Если Вы хотите, чтобы каждая исходная папка имела свою собственную выходную папку, просто проверьте Allow output folders for source folders
флажок и отредактируйте выходные папки, как желаемый.
, Если это не, на самом деле, что Вы хотите сделать, затем другая опция могла бы состоять в том, чтобы сгруппировать Ваши проекты в рабочий набор. Рабочим набором не является UberProject, но он действительно помогает сохранить Ваши проекты организованными в проводнике пакетов.
Вам нужен UberProject? Я имею то же расположение, но имею несколько проектов верхнего уровня, созданных с проектом File|New. В противном случае можно ли сделать это Общим проектом, а не проектом Java?
Таким образом, можно сделать это через наличие двух проектов Java в рабочей области.
Затем вопрос состоит в том, как собрать в группу эти два проекта под "UberProject"
, Один путь состоит в том, чтобы иметь рабочую область "UberProject" и переключить рабочие области между UberProjects. Альтернатива должна определить "UberProject" как рабочий набор (Наборы Window:Working) и добавить PrmgramA и ProgramB как проекты того рабочего набора. Выберите тот рабочий набор, и Вы видите только те проекты.
Вы можете иметь один проект Java и определить несколько исходных папок для него. Это, обычно делают это для "основного" по сравнению с "тестовыми" иерархиями в рамках того же проекта.
существуют пути и пути. Выберите тот, который работает на Вас :-)