Извлечение полей из строки журнала vsftpd с использованием bash

Очень простая и чистая функция, чтобы сломать обратную стрелку, не мешая странице после этого.

Преимущества:

  • Загружает мгновенно и восстанавливает исходный хеш, поэтому пользователь isn 't отвлекается по URL-адресу, заметно меняющимся.
  • Пользователь все равно может выйти, нажав 10 раз (это хорошо), но не случайно
  • Отсутствие пользовательских помех, например, других решений, использующих onbeforeunload
  • Он работает только один раз и не мешает дальнейшим манипуляциям с хэшем в случае, если вы используете это для отслеживания состояния
  • Восстанавливает оригинальный хеш, поэтому почти невидим.
  • ] Использует setInterval, поэтому он не прерывает медленные браузеры и всегда работает.
  • Чистый Javascript, не требует истории HTML5, работает повсеместно.
  • Unobrusive, просто и хорошо играет с другим кодом.
  • Не использует unbeforeunload, который прерывает пользователя с модальным диалогом.
  • Он просто работает без суеты.

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

Как это работает

  1. Выполняется при загрузке страницы
  2. Сохраняет исходный хеш (если он находится в URL-адресе).
  3. Последовательно добавляет # / noop / {1..10} к хэшу
  4. Восстанавливает исходный хэш

Вот и все.

Использовать его за одну секунду

Чтобы развернуть, просто добавьте это где угодно на своей странице или в вашем JS:

]
<script>
/* break back button */                                                                        
window.onload=function(){                                                                      
  var i=0; var previous_hash = window.location.hash;                                           
  var x = setInterval(function(){                                                              
    i++; window.location.hash = "/noop/" + i;                                                  
    if (i==10){clearInterval(x);                                                               
      window.location.hash = previous_hash;}                                                   
  },10);
}
</script>
0
задан Tiw 5 March 2019 в 04:43
поделиться

1 ответ

Просто небольшое улучшение вашего собственного кода:

echo $log | awk '{gsub(/[^0-9.]/,"",$12);print $12}'
127.0.0.1
echo $log | awk '{gsub(/[\[\]]/,"",$8);print $8}'
myuser

И лучше использовать их так:

ip=$(echo $log | awk '{gsub(/[^0-9.]/,"",$12);print $12}')
username=$(echo $log | awk '{gsub(/[\[\]]/,"",$8);print $8}')
0
ответ дан Tiw 5 March 2019 в 04:43
поделиться
Другие вопросы по тегам:

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