Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 70 сообщений
Cообщения с меткой

виртуальная клавиатура - Самое интересное в блогах

Следующие 30  »
rss_rss_hh_new

Антикейлоггер «для параноика» в Safari

Четверг, 13 Октября 2016 г. 22:21 (ссылка)

Доброе время суток, мой дорогой параноик! Конечно же ты наслышан о всяческих скрытых утилитах, призванных наглым образом слямзить твои сокровенные данные (пароли, контактные данные, данные кредиток и т.п.) посредством считывания буфера обмена, а также нажатий клавиш на программно-аппаратном уровне, при их вводе в браузере. Одним из вариантов минимизации рисков является использование виртуальной клавиатуры.





Существуют встроенные решения (например, виртуальная клавиатура в Windows), однако, как мы с тобой подозреваем, определить какие именно значения вводятся при помощи такого инструмента теоретически можно с помощью получения (X,Y) нашей драгоценной мышки. Чтобы выйти из ситуации просто перемешаем раскладку виртуальной клавиатуры! Что? Перемешать раскладку? Это же дико неудобно! — воскликнешь ты. И будешь прав, однако, параноим до упора…

Если быть честным, идея перемешать раскладку подсмотрена в одном крупном банке — на сайте отсутствует поле для ввода реквизитов банковской карты и предложено вводить номер через виртуальную клавиатуру, причем цифры в панели «калькулятора» переставляются местами. Сделаем же нечто подобное для любого сайта => мастерим свое расширение для браузера! #В качестве примера используем Safari

Чтобы не особо мучаться — возьмем готовую виртуальную клавиатуру на javascript/css отсюда и слегка доработаем ее.

Основная форма













  • `~

  • 1!

  • 2@

  • 3#

  • 4$

  • 5%

  • 6^

  • 7&

  • 8*

  • 9(

  • 0)

  • -_

  • =+

  • delete

  • tab

  • q

  • w

  • e

  • r

  • t

  • y

  • u

  • i

  • o

  • p

  • [{

  • ]}

  • |

  • caps lock

  • a

  • s

  • d

  • f

  • g

  • h

  • j

  • k

  • l

  • ;:

  • '"

  • return

  • shift

  • z

  • x

  • c

  • v

  • b

  • n

  • m

  • ,<

  • .>

  • /?

  • shift











Стили
* {
margin: 0;
padding: 0;
}
body {
font: 71%/1.5 Verdana, Sans-Serif;
background: #eee;
}
#container {
margin: 100px auto;
width: 688px;
}
#write {
margin: 0 0 5px;
padding: 5px;
width: 671px;
height: 200px;
font: 1em/1.5 Verdana, Sans-Serif;
background: #fff;
border: 1px solid #f9f9f9;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}
#keyboard {
margin: 0;
padding: 0;
list-style: none;
}
#keyboard li {
float: left;
margin: 0 5px 5px 0;
width: 40px;
height: 40px;
line-height: 40px;
text-align: center;
background: #fff;
border: 1px solid #f9f9f9;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}
.capslock, .tab, .left-shift {
clear: left;
}
#keyboard .tab, #keyboard .delete {
width: 70px;
}
#keyboard .capslock {
width: 80px;
}
#keyboard .return {
width: 77px;
}
#keyboard .left-shift {
width: 95px;
}
#keyboard .right-shift {
width: 109px;
}
.lastitem {
margin-right: 0;
}
.uppercase {
text-transform: uppercase;
}
#keyboard .space {
clear: left;
width: 681px;
}
.on {
display: none;
}
#keyboard li:hover {
position: relative;
top: 1px;
left: 1px;
border-color: #e5e5e5;
cursor: pointer;
}


Обработка нажатий
$(function(){
var $write = $('#write'),
shift = false,
capslock = false;

$('#keyboard li').click(function(){
var $this = $(this),
character = $this.html(); // If it's a lowercase letter, nothing happens to this variable

// Shift keys
if ($this.hasClass('left-shift') || $this.hasClass('right-shift')) {
$('.letter').toggleClass('uppercase');
$('.symbol span').toggle();

shift = (shift === true) ? false : true;
capslock = false;
return false;
}

// Caps lock
if ($this.hasClass('capslock')) {
$('.letter').toggleClass('uppercase');
capslock = true;
return false;
}

// Delete
if ($this.hasClass('delete')) {
var html = $write.html();

$write.html(html.substr(0, html.length - 1));
return false;
}

// Special characters
if ($this.hasClass('symbol')) character = $('span:visible', $this).html();
if ($this.hasClass('space')) character = ' ';
if ($this.hasClass('tab')) character = " ";
if ($this.hasClass('return')) character = "
";

// Uppercase letter
if ($this.hasClass('uppercase')) character = character.toUpperCase();

// Remove shift once a key is clicked.
if (shift === true) {
$('.symbol span').toggle();
if (capslock === false) $('.letter').toggleClass('uppercase');

shift = false;
}

// Add the character
$write.html($write.html() + character);
});
});




Как видно из «основной формы» наша виртуальная клавиатура представляет собой обычный структурированный список ul-li, его превращает в виртуальную клавиатуру прилагающийся css файл, а обработкой нажатий занят js-скрипт, изменяющий соответствующие характеристики кнопок (видимость, регистр и прочее).

Сперва внесем некоторые модификации в стили, добавив #keycont зависимость, тем самым изолировав стили нашей клавиатуры от стилей страницы, на которой мы будем ее использовать следующим образом:

#keycont {
display: none;
position: fixed !important;
top: 50% !important;
left: 50% !important;

font: normal 14px/1.5 Verdana, Sans-Serif !important;
color: #444 !important;
text-shadow: none !important;
background-color: #eee !important;
padding: 5px 0 0 5px !important;
margin: 0;

-moz-border-radius: 5px !important;
-webkit-border-radius: 5px !important;
-webkit-user-select: none !important;

z-index:999999999 !important;
}


Модификации дают нам возможность видеть клавиатуру адекватно, поверх страницы, строго по центру + добавлена некоторая кросс-браузерность для сглаживания кнопочек. Прочие модификации опустим, они не столь важны.

Далее доработаем на js-скрипт. Добавляем функцию перемешивания клавиш:

Array.prototype.shuffle = function( b )
{
var i = this.length, j, t;
while( i )
{
j = Math.floor( ( i-- ) * Math.random() );
t = b && typeof this[i].shuffle!=='undefined' ? this[i].shuffle() : this[i];
this[i] = this[j];
this[j] = t;
}
return this;
};


Она-то и будет менять положение кнопочек на клавиатуре. Следующим шагом добавим элементы «кнопочки» для перемешивания. Для простоты — будем перемешивать клавиши в рамках горизонтали расположения (не совсем чисто, но вполне достаточно для наших нужд):

	//Constructing keyboard
var keyboard = '
    ';
    var line0 = new Array('
  • ` ~
  • ', '
  • 1 !
  • ', '
  • 2 @
  • ', '
  • 3 #
  • ', '
  • 4 $
  • ', '
  • 5 %
  • ', '
  • 6 ^
  • ', '
  • 7 &
  • ', '
  • 8 *
  • ', '
  • 9 (
  • ', '
  • 0 )
  • ', '
  • - _
  • ', '
  • = +
  • ');
    var line1 = new Array('
  • q
  • ', '
  • w
  • ', '
  • e
  • ', '
  • r
  • ', '
  • t
  • ', '
  • y
  • ', '
  • u
  • ', '
  • i
  • ', '
  • o
  • ', '
  • p
  • ', '
  • [ {
  • ', '
  • ] }
  • ', '
  • \ |
  • ');
    var line2 = new Array('
  • a
  • ', '
  • s
  • ', '
  • d
  • ', '
  • f
  • ', '
  • g
  • ', '
  • h
  • ', '
  • j
  • ', '
  • k
  • ', '
  • l
  • ', '
  • ; :
  • ', '
  • ' "
  • ');
    var line3 = new Array('
  • z
  • ', '
  • x
  • ', '
  • c
  • ', '
  • v
  • ', '
  • b
  • ', '
  • n
  • ', '
  • m
  • ', '
  • , <
  • ', '
  • . >
  • ', '
  • / ?
  • ');

    line0.shuffle();
    line1.shuffle();
    line2.shuffle();
    line3.shuffle();

    keyboard += line0.join("");
    keyboard += '
  • delete
  • ';
    keyboard += '
  • tab
  • ';

    keyboard += line1.join("");
    keyboard += '
  • caps lock
  • ';

    keyboard += line2.join("");
    keyboard += '
  • return
  • ';
    keyboard += '
  • shift
  • ';

    keyboard += line3.join("");
    keyboard += '
  • shift
  • ';
    keyboard += '
  • ';

    keyboard+='
';

$('body').append(keyboard);


Клавиатура собрана!

Осталось дело за малым — на страничке клавиатура нужна далеко не всегда, а только в тех случаях, когда мы собираемся что-то вводить в «секретные» поля, причем этих полей на странице может быть несколько (в данном релизе будем отлавливать поля ввода пароля по известному свойству). Поэтому добавляем пару-тройку новых функций по активации/деактивации (скрытию/показу) клавиатуры:

	$write.focus(function(){
$write = $(this);
$keycont.fadeIn();
wrfocus = true;
});

$write.focusout(function(){
if (focusss == false) {wrfocus=false; $keycont.fadeOut();}
});

$keycont.hover(
function(){
if (wrfocus == true) focusss = true;
},
function(){
focusss = false;
}
);

$keycont.focusout(function(){
if (focusss == false) {wrfocus=false; $keycont.fadeOut();}
});

$keycont.click(function(){
focusss = true;
if (wrfocus == true) $write.focus();
});


Вот и вся магия, если не углубляться дальше =)

Особенности клавиатуры: относительная кроссбраузерность, перемешивание клавиш при перезагрузке страницы (для разных вкладок клавиатура перемешивается по независимо), требуется включение javascript, могут быть неявные подводные камни.

Протестировано на ряде популярных ресурсов:

Для Habrahabr


Для Facebook


Для VK


Для Stackoverflow




К сожалению, не заработало в Google и iCloud, скорее всего есть специфические моменты на данных ресурсах.

Делал клавиатуру давно, поэтому извиняюсь за не слишком подробное описание.

Сборку расширения для Safari можно скачать по этой ссылке. Устанавливается и активируется в Safari через вкладку «Разработчик», о том как это сделать — спросить в любимом поисковике.

P.S. можно настроить клавиатуру по своему вкусу (отлавливать поля ввода банковских карт и прочих специфических полей любимых сайтов), перемешивание кнопочек же отключается удалением соответствующей строчки в коде =) Пользуемся на здоровье, удачи!
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/312646/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Watermillsky

Виртуальная клавиатура Google Gboard для устройств с iOS

Четверг, 19 Мая 2016 г. 16:45 (ссылка)


Виртуальную клавиатуру по достоинству оценят мобильные пользователи на роскошных устройствах Apple с операционной системой iOS. Ведь это сразу три одновременных действия: переписка, поиск и отправка собеседнику любой найденной информации. Например, адрес развлекательного заведения, новые картинки и популярные видеоролики, а также многое другое, что непременно отыщется в недрах Интернета с помощью Google. Далее

Комментарии (0)КомментироватьВ цитатник или сообщество
Artconn

Smart Keyboard PRO v4.9.2 Ml/Rus - Виртуальная клавиатура, Android клавиатура, клавиатура Smart

Понедельник, 08 Декабря 2014 г. 19:31 (ссылка)
sweet.org.ua/mobila/1699-smart.html

Smart Keyboard PRO v4.9.2 Ml/Rus - По отзывам пользователей очень даже приличная виртуальная клавиатура для Android.
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
козарез

Виртуальная клавиатура с подсказкой для каждой клавиши

Суббота, 11 Октября 2014 г. 21:43 (ссылка)

Это цитата сообщения Luira Оригинальное сообщение

Виртуальная клавиатура с подсказкой для каждой клавиши


Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Планула

Переводчик онлайн. Проверка правописания. Виртуальная клавиатура

Четверг, 11 Сентября 2014 г. 19:31 (ссылка)








О переводчике


К вашим услугам самый популярный бесплатный онлайн переводчик текстов в украинском Интернете. Предлагаем языки для перевода (в любую сторону): русский, украинский, английский, немецкий, французский, испанский, итальянский и многие другие.


переводчик (643x615, 35Kb)










Кнопка на сайт Форма переводчика
Вид:
Код:
Вид:
Код:


<<<<<<< далее >>>>>>>
Метки:   Комментарии (1)КомментироватьВ цитатник или сообщество
pmos_nmos

Израильские изобретения, которые изменили мир

Пятница, 13 Июня 2014 г. 10:37 (ссылка)


Lumio – виртуальная клавиатура



Проекционная клавиатура представляет собой оптическую проекцию клавиатуры на какую-либо поверхность, на которой и производится касание виртуальных клавиш. Клавиатура отслеживает движения пальцев и переводит их в нажатия клавиш. Большинство разработанных систем может функционировать также как виртуальная мышь и даже как виртуальная музыкальная клавиатура пианино. В 2002 году израильская стартап-компания Lumio разработала инфракрасную проекционную клавиатуру и представила ее на выставке CeBIT.




Lumio – виртуальная клавиатура



Lumio – виртуальная клавиатура




Источник

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Alina_RU_

Bиртуальная клавиатура, как писать по-русски на чужом компьютере.

Четверг, 06 Марта 2014 г. 14:15 (ссылка)

Периодически сталкиваюсь с тем, что надо на чужом компьютере выйти в сеть. Почитать почту нет проблем, а вот отвечать.. Не знаю, как вам, а мне писать латиницей русские тексты не удобно, а читать это нужно обладать адским терпением. Знаю одного товарища, что на комментарии написанные takim obrasom отвечает: НЕ ПРОЧИТАНО. И правильно делает, потому что тех, кому адресуете свои слова, нужно уважать. Я в такик случаях пользуюсь виртуальной клавиатурой онлайн.

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

И все же, виртуальная клавиатура есть выход в таких ситуациях. Настоящий текст я как раз на ней и пишу. Удобно тем, что можно настроить "как дома". В одноклассниках давно в самом низу странички есть ссылка на виртуальную клавиатуру. Теперь вот и фейсбук имеет такое приложение.

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


http://winrus.com/klava.htm

https://apps.facebook.com/type-n-copy/

Метки:   Комментарии (7)КомментироватьВ цитатник или сообщество

Следующие 30  »

<виртуальная клавиатура - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda