Как получить значение поля ввода текста с помощью JavaScript?

Чтобы защитить от SQL-инъекции, клиенты могут использовать языковые API MongoDB. Таким образом, все входные данные являются простыми значениями - команды не могут быть введены. Пример Java:

collection.find(Filters.eq("key", "input value"))

Недостатком является то, что вы не можете легко проверить свой фильтр. Вы не можете скопировать его в оболочку Монго и проверить его. Особенно проблематично с более крупными, более сложными фильтрами / запросами.

НО !!! есть также API, чтобы не использовать API фильтра - позволяющий анализировать любой json-фильтр. Пример Java ниже:

collection.find(BasicDBObject.parse("{key: "input value"}"));

Это хорошо, потому что вы можете скопировать фильтр непосредственно в оболочку MongoDB, чтобы проверить его.

НО !!! (последнее, но, я обещаю), это склонно к инъекции NoSql. Пример Java, где входное значение {$gt: ""}.

collection.find(BasicDBObject.parse("{key: {$gt: ""}}"));

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

См. здесь более подробное объяснение SQL-инъекции при непосредственном использовании фильтров.

Последнее. Я думаю, что есть способ использовать оба необработанных фильтра и по-прежнему защищать от SQL-инъекций. Например, в Java мы можем использовать параметризованные запросы Jongo .

753
задан Peter Mortensen 27 May 2017 в 22:06
поделиться

1 ответ

Если Ваш input находится в form, и Вы хотите получить значение после того, как утверждают, что можно сделать как [1 124]

<form onsubmit="submitLoginForm(event)">
    <input type="text" name="name">
    <input type="password" name="password">
    <input type="submit" value="Login">
</form>

<script type="text/javascript">

    function submitLoginForm(event){
        event.preventDefault();

        console.log(event.target['name'].value);
        console.log(event.target['password'].value);
    }
</script>

Преимущество этого пути: Пример Ваша страница имеет 2 form для входа sender и receiver информация.

, Если Вы не используете form для, получают значение затем
- можно установить 2 различных id (или tag или name...) для каждого поля как [1 110] и receiver-name, sender-address и receiver-address...
- Если Вы устанавливаете то же значение для 2 входов, затем после getElementsByName (или getElementsByTagName...) необходимо помнить 0, или 1 sender или receiver. Позже при изменении порядка 2 form в HTML необходимо проверить этот код снова

, Если Вы используете form, затем можно использовать name, address...

1
ответ дан 22 November 2019 в 21:19
поделиться
Другие вопросы по тегам:

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