Как мой пароль передается с моего браузера на веб-сервер надежно?

Вы используете filter() для переключения каждого элемента в зависимости от состояния, например, используете each() . Но одно из преимуществ filter() заключается в том, что вы можете вернуть уменьшенный выбор и сосчитать содержащиеся в нем элементы. Это значение может определять, должно ли отображаться сообщение «нет совпадения».

... метод .filter () создает новый объект jQuery из подмножества соответствующих элементов. Поставляемый селектор проверяется по каждому элементу; все элементы, соответствующие селектору, будут включены в результат. - фильтр () .

Для каждого элемента, если функция возвращает true (или «истинное» значение), элемент будет включен в отфильтрованный набор; в противном случае это будет исключено. - Использование функции фильтра

blockquote>

Итак, вместо переключения элементов непосредственно из вызова фильтра, рассмотрите возможность возврата логического показателя того, является ли текущий элемент совпадающим. Сохраните полученный отфильтрованный выбор в переменной. После фильтрации вы можете переключить этот выбор в целом:

var $filtered = $items.filter(function() {
  return $(this).text().indexOf(value) > -1;
});

$items.toggle(false);
$filtered.toggle(true);

Это скрывает все элементы, а затем показывает только отфильтрованные элементы.
Вы можете даже рассмотреть некоторую анимацию затухания:

$items.hide(250);
$filtered.stop(true,false).show(250);

Затем вы можете сослаться на отфильтрованные выделения length .
Если оно равно нулю, покажите сообщение «not found»:

var hasMatches = $filtered.length;

if (hasMatches) {
  // there were matches.
} else {
  // no matches.
}

Вы также можете передать селектор в фильтр. Селектор jQuery :contains() выбирает «все элементы, которые содержат указанный текст», что делает хороший выбор.

Рабочий пример:

var $items = $('.item');
var $none = $('#none');
var fade = 250;

function filterContent() {

  // get word from value of clicked button.
  var word = this.value;

  // hide items; filter; show filtered; count matches
  var hasMatches = $items
    .hide(fade)
    .filter(':contains(' + word + ')')
    .stop(true, false)
    .show(fade)
    .length;

  // if no matches, show message.
  if (hasMatches) {
    $none.hide(fade);
  } else {
    $none.show(fade);
  }

}

$('button').on('click', filterContent);
#none {
  display: none;
  color: darkred;
}

#buttons {
  margin: 1em 0 0;
}


Here is some text.
Here is some other text.
Here is some other different text.
Here is something else.
Here is some additional text.
No matches found.

] Другой способ:

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

var $items = $('.item');
var $none = $('#none');

function toggleItem(word) {
  return function(k, el) {
    var $item = $(el);
    var state = $item.text().indexOf(word) > -1;
    $item.toggle(state);
    return state;
  }
}

function filterContent() {

  // get word from value of clicked button.
  var word = this.value;

  // filter while toggling and count result.
  var hasMatches = $items
    .filter(toggleItem(word))
    .length;

  // if no matches, show message.
  $none.toggle(!hasMatches);

}

$('button').on('click', filterContent);
#none {
  display: none;
  color: darkred;
}

#buttons {
  margin: 1em 0 0;
}


Here is some text.
Here is some other text.
Here is some other different text.
Here is something else.
Here is some additional text.
No matches found.

На мой взгляд, это немного сложнее для чтения и не так ясно, как прикованная цепью , filter, show, length ", но это в некоторой степени вопрос стиля. Вы можете видеть, что есть много способов испечь этот пирог!

Этот довольно короткий и сладкий:

var $none = $("#none");
var $items = $(".item");

$("button").click(function() {

  var value = $(this).data('value');

  $items.each(function() {
    $(this).toggle($(this).text().indexOf(value) > -1);
  });

  $none.toggle(!$items.filter(':visible').length);

});
#none {
  display: none;
  color: darkred;
}

#buttons {
  margin: 1em 0 0;
}


Here is some text.
Here is some other text.
Here is some other different text.
Here is something else.
Here is some additional text.
No matches found.

5
задан Srikanth 19 February 2009 в 10:34
поделиться

3 ответа

При помощи SSL.

Править
Хороший ресурс информации о безопасности и шифровании является безопасностью Теперь! подкаст Steve Gibson и Leo Laporte. Steve может объяснить очень полностью, как безопасность работает, поэтому пойдите, проверяют его!

Последний эпизод (#183) о Режимах Шифрования (свяжитесь с shownotes/podcast),

4
ответ дан 14 December 2019 в 09:01
поделиться

В случае Gmail или любой другой основанной на форме аутентификации, защита прибывает из транспортного уровня. При отправке формы через HTTP нет в основном никакой защиты. При отправке формы с помощью SSL (который необходимо использовать), защита прибывает из SSL. Можно читать больше о SSL по http://en.wikipedia.org/wiki/Transport_Layer_Security

2
ответ дан 14 December 2019 в 09:01
поделиться

Это зависит полностью от того, является ли это HTTPS или Запросом HTTP. В целом запросы Аутентификации HTTP представляются, что называют "эквивалентным простым текстом". Это Кодируется в Основе 64, который легко инвертируется так, это - в основном простой текст - значение, что это не безопасно.

Некоторые браузеры, как Internet Explorer имеют некоторые расширения, чтобы позволить "безопасным" паролям быть отправленными на серверы, которые понимают и могут декодировать их. Это обычно означает IIS, работающий в доменной среде. Я поместил безопасный в кавычки, потому что, поскольку большинство вещей, которые Microsoft делает, сумма истинной безопасности, часто для обсуждения.

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

1
ответ дан 14 December 2019 в 09:01
поделиться
Другие вопросы по тегам:

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