Как я нахожу узел DOM, который является в данном (X, Y) положением? (Тест хита)

@Terrapin - sprocs так же уязвимы для инжекционных нападений. Поскольку я сказал:

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

, Который идет для sprocs и динамического Sql.

я не уверен не, перекомпиляция Вашего приложения является преимуществом. Я имею в виду, Вы выполнили свои модульные тесты против того кода (и приложение и DB) перед вводом в эксплуатацию снова так или иначе.

<час>

@Guy - да Вы правы, sprocs действительно позволяют Вам пользователи приложения управления так, чтобы они могли только выполнить sproc, не основной иск.

Мой вопрос был бы: если весь доступ это через Ваше приложение, с помощью соединений и пользователей с ограниченными правами обновить/вставить и т.д., этот дополнительный уровень добавляет безопасность или дополнительное администрирование?

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

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

22
задан Geoff 15 October 2009 в 01:26
поделиться

5 ответов

Если ваши пользователи не используют старые версии Safari, Chrome или Opera, вам повезло: используйте document.elementFromPoint (x, y) ( Ссылка MSDN , Ссылка Mozilla , Статья QuirksMode ):

Возвращает элемент из документа ... это самый верхний элемент, который находится под заданной точкой.

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

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

24
ответ дан 29 November 2019 в 05:26
поделиться

В IE существует document.body.componentFromPoint (x, y) . Я не знаю, есть ли кроссбраузерная реализация.

1
ответ дан 29 November 2019 в 05:26
поделиться

Для этого можно использовать jQuery. Я бы привязал все необходимые элементы dom к событию щелчка, это даст мне соответствующий объект dom при щелчке, а также положение мыши .

0
ответ дан 29 November 2019 в 05:26
поделиться

Это, вероятно, не лучшее решение, но вы можете пройти по дереву dom, начиная с поиска координат узлов-предков, которые содержат ваши позиции x и y, и быстро добраться до конечного узла, который содержит ваши координаты. Чтобы получить позиции узла в кросс-браузере, вы можете посмотреть JS-инструменты. Я использовал додзё. Взгляните на dojo._getMarginBox здесь

1
ответ дан 29 November 2019 в 05:26
поделиться
document.elementFromPoint(x,y)

Документировано здесь для Firefox 3 и здесь для IE, но см. quirksmode для различий между браузерами.

1
ответ дан 29 November 2019 в 05:26
поделиться
Другие вопросы по тегам:

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