В моем понимании плагин не должен сам себя загружать, так что нельзя писать в нем строку типа:
$plugins[] = new plugin_silencer(); |
Надо загружать его посредством ядра.
Tags: php plugin blog | 2013-08-12 12:05:58
В данной статье я хочу рассказать о том, что в моем понимании представляет собой модульная система и сайт.
И так представим себе хорошо организованное предприятие. В таком предприятии каждый отдел занимается своей частью работы, и не работает "за того парня". В моем представлении правильно организованная модульная система должна состоять из модулей выполняющих отдельные функции.
Tags: php plugin blog module | 2013-08-12 12:07:01
В прошлой статье я рассказывал о преимуществах модульных систем, в данном посте я расскажу про архитектуру таких систем.
Для начала определимся из каких компонентов будет состоять наша система.
Я предлагаю выделить 3 основных:
Ядро
Модуль
Плагин
Tags: php plugin blog module | 2013-08-12 12:10:37
Перейдем наконец к написанию CMS. Писать мы её конечно будем на PHP. В данной статье я не буду подробно рассматривать создание плагинов (я уже показывал пример в своей другой статье), а так же соединение с базой данных и управление пользователями. Все это будет позже, а пока я покажу основные принципы.
Tags: php plugin blog module | 2013-08-12 12:19:43
В последнее время угроза взлома сайтов резко возросла. Общедоступность информации о методах взлома и безнаказанность хакеров привели к тому, что даже школьники начинают ломать сайты. К сожалению, даже в самых прогрессивных системах находят уязвимости, попробуйте набрать в google «уязвимости Joomla!» или «exploit DLE» и вы найдете десятки дыр в безопасности. Существует огромное количество классов уязвимостей я приведу некоторые, самые распространенные:
XSS
database injection
shellcode
php magic methods
Bruteforce
Я не ошибся занеся брут в уязвимости - от перебора паролей должен защищаться как сам скрипт, так сервер. Но давайте по-порядку.
XSS — класс уязвимостей позволяющий хакеру вставить свой HTML-тег на сайт, подразделяется на активный(виден всем) и пассивный(доступен по определенной ссылке). В результате можно получить cookies пользователей, в том числе и админа, или же заразить машины клиентов вирусом.
Database injection — возможность выполнять запросы к базе данных через скрипт. Наиболее опасная и распространенная уязвимость, так как злоумышленник получает доступ и к паролям, и к контенту сайта.
Shellcode — возможность исполнять команды на сервере через скрипт. Чаще всего на сайт заливается шелл через DDOS или уязвимость в самом скрипте.
Php magic methods — возможность выполнить PHP скрипт с помощью десериализации(функции __unserialize, __wake, и прочих) недостаточно отфильтрованного пользовательского ввода. Публичной огласке подверглась в ноябре 2009 года Стефаном Эссером.
Bruteforce — подбор пароля к пользователю или админке. Достаточно просто блокируется каптчей и/или запретом на попытку ввода пароля nое количество раз.
Как видите мы еще не закрыли старые дырки, а уже находят новые, этот процесс вечен, и я вам скажу по-секрету на любом даже самом крутом и безопасном сайте можно при должном усердии найти лазейку. Наша задача уменьшить их количество.
Всегда ваш,
Александр 7ion.
Tags: php security xss web exploit | 2013-08-12 12:22:37
Порой надо, чтобы событие кнопки в веб-интерфейсе изменилось, оказывается это очень просто сделать.
element.onclick=function(){myFunction(parametrs);};
Field1:
Field2:
Click the button to copy the content of Field1 to Field2.
А вот исходный код примера:
<script>
someObject = function()
{
this.alme = function(el,postvars)
{
alert(postvars);
el.onclick=function(){myObject.alme(this,document.getElementById('field2').value);};
}
}
myObject = new someObject();
</script>
Field1: <input type="text" id="field1" value="Hello Sky!" />
<br />
Field2: <input type="text" id="field2" value="Bye Ground!" />
<br /><br />
Click the button to copy the content of Field1 to Field2.
<br />
<button onclick="myObject.alme(this,document.getElementById('field1').value)">Show Text</button>
Tags: js javascript | 2013-08-12 12:25:50
Сложилось общее мнение, что из-за отсутствия в PHP потоков, как в C++ или Java, PHP не является многозадачным языком. Грубо говоря нельзя исполнять несколько команд одновременно. В результате многие разработчики выходили из положения с помощью эмуляции в виде асинхронных сокетов(Asynchronous Sockets) или мультикурл (curl_multi_init), некоторые использовали библиотеку pcntl_fork которая не входит в стандартную сборку PHP. Да, PHP не поддерживает обработку потоков, но он может быть многозадачным.
Tags: php thread | 2013-08-12 12:29:07
AJAX (от англ. Asynchronous Javascript and XML — «асинхронный JavaScript и XML») - способ создания веб-приложений с интерактивным интерфейсом, за счет «фонового» обмена между сервером и клиентом. Обновление данных происходит без перезагрузки всей страницы, что позволяет экономить трафик.
Tags: js javascript ajax | 2013-08-12 12:30:11
MySQL инъекции очень распространенная и наиболее опасная ошибка. С её помощью можно сделать много пакостей: от неавторизованного входа, до дефейса. Данная уязвимость позволяет злоумышленику выполнять произвольные команды на сервере базы данных.
О предмете статьи написанно много, часто пишут о фильтрации переменных регулярными выражениями кои просто увеличивают время обработки, я расскажу вам о самом простом и наиболее безопасном способе защиты.
Tags: php mysql injection security | 2013-08-12 12:32:02
RSS ленты стали очень распространенным способом узнать об обновлении того или иного сайта. Сейчас практически на любом сайте есть такая лента, как сделать её на своем сайте посредством PHP я сейчас расскажу.
Tags: php rss xml | 2013-08-12 12:33:00
Последнее время мне очень часто приходится парсить страницы разных сайтов. Когда я начинал изучать эту тему, то заметил, что есть 2 подхода к анализу контента страницы: анализ регулярными выражениями и с помощью phpQuery или simpleHtmlDOM. Будучи не сторонником использования чужих библиотек я выбрал 1ый путь.
Tags: php parse xml | 2013-08-12 12:34:41
Маленькая заметка больше для себя любимого.
Чтобы поставить GCC на Synology DS-207 надо:
wget http://synofred.free.fr/dl/syno/ds_armmarvell-bootstrap_1.0.xsh
илиwget http://ipkg.nslu2-linux.org/feeds/optware/syno-x07/cross/unstable/
и запустить скрипт sh ds*.sh
Изменить sourcelist
vi /opt/etc/ipkg.conf
добавляем
src synoware http://ipkg.nslu2-linux.org/feeds/optware/syno-x07/cross/unstable
А так же создаем папкуmkdir –p /opt/etc/init.d
Обновить список пакетов
ipkg update
Вот и все, товарищи
Tags: linux gcc synology embeded | 2013-08-12 12:49:23