Прошу прощения, тут предлагается обсудить что делать в будущем, а я под впечатлением от прочитанного стал думать о том, что делать с этой инициативой в настоящем. Виноват.
Скорее всего есть логи по любой активности при голосовании. Если «манипуляции» шли напрямую в БД, в обход логики, то логи не должны совпадать с актуальным состоянием. Может просто попросить РОИ выложить анонимные логи за какой-то промежуток времени, например за неделю, затем агрегировать лог, посчитать что вышло и сравнить со сторонними логами?
Конечно, подстроить логи можно, но было проведено множество разных сторонних наблюдений, что может помочь отследить такие «подстройки».
Считаю, что проводить собеседование на знание HTML нужно, минимум, в совокупности со знаниями CSS, ведь в подавляющем большинстве случаев именно последний имеет решающую роль в верстке. Наверное, все таки лучше попросить соискателя самому что-то сверстать, а затем его экзаменовать.
Что касается приведенных вами вопросов, то их, по-моему, лучше использовать для того, чтобы завалить собеседуемого в нужный момент. :)
Хотелось уточнить по вот этой части вашего поста и далее:
<article>
<h1>Main title</h1>
<h2>This is a subtitle</h2>
<p>This is the content of this section</p>
</article>
Не могу сообразить, где реально на практике важно сохранение иерархии h1 > p, h2? Нигде не встречал такого. Может быть на поисковики как-то влияет?
В принципе, если заменить эти шесть используемых символов на невидимые, то можно получить что-то вроде invisibleJSFuck. Одно плохо, что очень большой объем занимает такой код.
Вы упомянули про отключение hover-состояний, но при этом не указали зачем это нужно делать. В действительности же, дело не в «интересе пользователя», а в том, что это может серьезно повлиять на процесс отрисовки страницы в момент скролла.
На Хабре была статья на эту тему, она хорошо раскрывает описанный вами метод.
Большое спасибо. По поводу перескакивания — интересный эффект, но ничего об этом не знаю, а вот тот факт, что все таки не все символы стали «квадратами» — радует. Возможность остается.
Что вы, ни в коем случае. Я в общем-то и не утверждал, что это 100%-ный способ скрыть все и ото всех.
Отвечу несколько на иной вопрос: а зачем это надо вообще? Как правило, те, кто, простите, воруют код, — они либо не обладают должным уровнем опыта и знаний, либо не обладают достаточным временем для реализации того или иного функционала. При первом типе «разработчиков» велика вероятность того, что они даже до вашего примера не дойдут, если вообще поймут что к чему — ведь при первом взгляде — ничего не бросается в глаза, особенно скрытый код. Если говорить о вторых, будут ли они тратить время на исследование кода, расшифровку всех хитросплетений, частичную деобфускацию и так далее, чтобы в результате получить неподдерживаемый код для своего проекта? Не уверен.
Но если у вас стоит цель «распотрошить таки этот код» — вы это, безусловно, сделаете. И ничто вам не помешает. :)
Для этого надо скопировать все эти квадраты (желательно тройной клик — чтобы выделить всю строку) в какой-нибудь редактор, поставить курсор вначале строки и последовательно, стрелочкой вправо на клавиатуре, двигаться до конца. Если при очередном нажатии вы обнаружите, что мигающий курсор остался на месте — значит там прячется невидимый символ.
Спасибо за наблюдения! Все возможные варианты браузеров проверить не удалось, виноват.
Интересно, что 12 квадратиков — это только лишь 3 закодированных буквы, а значит все же среди этих квадратиков должны были «затесаться» и невидимые символы. Думаю, что кому захочется сделать все идеально — найдет такую комбинацию, при которой ничего не будет появляться.
Дико извиняюсь за двойной коммент, но в глаза не сразу бросилась пустая строка, а редактировать предыдущий коммент уже поздно. Сам же и попался, что называется. Расшифровал ваше послание. Отправляю ответ:
Спасибо за ссылку, но я уже упомянул этот пост в статье, посмотрите внимательно. Кроме того, я указал, что там похожий подход, но без изюминки. В чем заключаются отличия? Собственно, об этом и статья.
Специально закладку не делал, но в примере «Привет, как дела?» — все есть. Даже в этом комменте.
Попробуйте использовать для литералов этот самый invisibleJS? Хотя могут возникнуть проблемы при обфускации самой функции «исчезации» — но ведь можно этого и не делать, зато весь остальной код будет работать.
Сам когда-то пытался восстановить обфусцированный от души код… Несколько часов ковыряния в коде позволили убрать (именно вырезать) проблемную часть. При этом как-то модифицировать функционал — едва возможно без нервного срыва.
А если еще навесить скрытый код, еще прикрутить правила для сервера на отдачу скриптов только с определенного url и домена (если копипастишь — копипастить придется из браузера) и так далее, то разобрать это все конечно возможно, но становится явно сложно.
Разобрать, конечно, возможно. Но это когда «кулхацкер» разберется во всех премудростях и хитросплетениях. И когда он поймет, что открытый через строку браузера файл /js/awesome-module.js уже давно не такой, с которым умеет работать /js/awesome-init.js — задумается, стоит ли все это разбирать или может лучше написать все самому с нуля?
Конечно, подстроить логи можно, но было проведено множество разных сторонних наблюдений, что может помочь отследить такие «подстройки».
Что касается приведенных вами вопросов, то их, по-моему, лучше использовать для того, чтобы завалить собеседуемого в нужный момент. :)
Хотелось уточнить по вот этой части вашего поста и далее:
Не могу сообразить, где реально на практике важно сохранение иерархии
h1 > p, h2? Нигде не встречал такого. Может быть на поисковики как-то влияет?Кстати, есть мнение, что такие мелочи браузеры должны бы тоже уже уметь оптимизировать сами…
На Хабре была статья на эту тему, она хорошо раскрывает описанный вами метод.
Отвечу несколько на иной вопрос: а зачем это надо вообще? Как правило, те, кто, простите, воруют код, — они либо не обладают должным уровнем опыта и знаний, либо не обладают достаточным временем для реализации того или иного функционала. При первом типе «разработчиков» велика вероятность того, что они даже до вашего примера не дойдут, если вообще поймут что к чему — ведь при первом взгляде — ничего не бросается в глаза, особенно скрытый код. Если говорить о вторых, будут ли они тратить время на исследование кода, расшифровку всех хитросплетений, частичную деобфускацию и так далее, чтобы в результате получить неподдерживаемый код для своего проекта? Не уверен.
Но если у вас стоит цель «распотрошить таки этот код» — вы это, безусловно, сделаете. И ничто вам не помешает. :)
Интересно, что 12 квадратиков — это только лишь 3 закодированных буквы, а значит все же среди этих квадратиков должны были «затесаться» и невидимые символы. Думаю, что кому захочется сделать все идеально — найдет такую комбинацию, при которой ничего не будет появляться.
Разобрать, конечно, возможно. Но это когда «кулхацкер» разберется во всех премудростях и хитросплетениях. И когда он поймет, что открытый через строку браузера файл
/js/awesome-module.jsуже давно не такой, с которым умеет работать/js/awesome-init.js— задумается, стоит ли все это разбирать или может лучше написать все самому с нуля?