Приветствую Вас ГостьПонедельник, 14.07.2025, 18:52

Light Midnight Inc.


Каталог статей

Главная » Статьи » Взлом и Хакер

Грязный хак

Хак — решение проблемы посредством использования недокументированного или некорректно реализованного способа. Грязный хак — подвидкостылей, быстрое решение какой-либо проблемы, в основном в краткосрочной перспективе, лишающее сущность (программу, продукт, вещь) внутренней красоты и дисгармонирующее с её внутренним устройством. Кошерной альтернативой грязному хаку является рефакторинг. Не путать с изжопом — использованием сложных, неочевидных способов реализации при наличии простых и красивых решений (см. Индусский код).

В коде также можно увидеть так называемый nice hack (красивый хак), например небольшие участки кода, умело и красиво использованные не по назначению, что не вызывает рвотных рефлексов при их прочтении. Впрочем, это тоже считается дурным тоном, поскольку нарушает принцип KISS.

Примеры

  • Браузеры Internet Explorer 5 и 6 версий не поддерживают CSS-свойство min-height. Однако у них неправильно реализовано свойство height, из-за чего оно действует как min-height. Кроме того, только вышеперечисленные браузеры воспринимают CSS-код после * html. Остальные браузеры его игнорируют. В результате появляется возможность использовать следующий хак, позволяющий реализовывать свойство min-height во всех браузерах:
div {min-height: 150px;} // Это для всех браузеров
* html div {height: 150px;} // Это только для ИЕ
  • Чтобы получить доступ к private- или protected- членам класса, в C++ можно иногда увидеть паттерн «Паблик Морозов», открывающий доступ к защищенным данным и методам:
#define private public
#include <header.h>
#undef private // А вот пока анонимус не дописал undef это и было грязным хаком.

...

Header *h = new Header();
int x = h->m_value; // m_value в прошлой жизни - private
  •  — Ты пересобрал тулзу под новую версию либы?
    — Нет, пока что просто создал симлинк с новой либы на старую.
    — Какой грязный хак!
  • Зайти на любой сайт, например на ag.ru и в адресной строке браузера прописать этот код-скрипт:
javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i<DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval('A()',5); void(0)

после хвастать скринами перед друганами.

  • На странице любого сайта в адресной строке браузера вписать:
javascript:document.body.contentEditable = 'true'; document.designMode = 'on'; void 0

После этого можно редактировать страницу локально у себя и делать скрины. Сам сайт, естественно, не изменится.

Категория: Взлом и Хакер | Добавил: Cromartie (12.06.2012)
Просмотров: 506 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Наш опрос
Оцените мой сайт
Всего ответов: 543
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Реклама
Cheсking
Часы
Мини-чат
200
Друзья Сайта
  • Light Midnight - Ваша Еда
  • Light Midnight - Anim as life style
  • Поиск