Frame busting техника

Идеята на тази техника е да защитите своята страница от включването и във iframe.

Ето я и самата техника :

<script>if (top!=self) top.location.href=self.location.href</script>

С други думи когато се зареди страница защитена с Frame busting се зарежда в нов прозорец  като скача над iframe-а.

Забелязах, че българският сайт bgtop.net я ползват:
Ето част от сорса на индекса им:


<body onload="if (self != top) top.location = self.location">

За повече информация:
http://www.owasp.org/index.php/Clickjacking

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Забраняване на функции в php за конкретен VirtualHost под Apache

Идеята е следната: да се забранят системните функции на виртуалния хост X в Apache 2.2.X:

<VirtualHost XXX>

<IfModule mod_php5.c>
php_admin_flag safe_mode on
php_admin_value disable_functions "system, exec, shell_exec, passthru, set_time_limit, error_log, ini_alter, dl, pfsockopen, openlog, syslog, readlink, symlink, link, leak, fsockopen, popen, escapeshellcmd, apache_child_terminate apache_get_modules, apache_get_version, apache_getenv, apache_note,apache_setenv,virtual"

</IfModule>

</VirtualHost>

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Нулева хигиена в цех за безалкохолни. Без коментар

Доста неща се знаят и виждат, публична тайна или не, но това просто не потресе. Тази сутрин в bTV гледах по "Тази сутрин"(Страхотно предаване!) и реших да Ви го споделя. Интересното е, че сега докато го гледах изведнъж спря и ЛОЛ какво да видя, линка беше Not Found :).

Все пак ако мислят да го пуснат отново ето линка на видео материала:

http://www.btv.bg/shows/tazi-sutrin/razgovori-gosti/story/658520045-Nuleva_higiena_v_tseh_za_bezalkoholni.html

Как е възможно да се произведе напитка, с вкус на малина, газирана, на цена, по-ниска от чиста вода? За да си отговорим на този въпрос, намираме мястото, където се произвежда една от популярните марки евтини, газирани безалкохолни напитки. Продават се в София, а заводът е в покрайнините на столицата.

Цехът е с капацитет 20 000 литра безалкохолно на ден. В сградата има кал, какато няма дори по улиците на София. Стените, подът и тавана са мръсни, машините и съоръженията са ръждясали, работниците обядват върху каси на пода. По-добре да не се говори за тоалетната за персонала. От нея обаче без ръкавици и работни облекла работниците се връщат на работните си места, за да пълнят бутилки с газирани сокчета

Цялата публикация тук в bTV

Edit: Работи си всичко.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Избиране на всички потребители във Facebook

Идеята е когато искате да изпратите някои хубава фен страница на приятелите си, а не ви се цъка на всеки по отделно. Тук идва на помощ това скриптче, което прави това(едно от 8918181 -те такива) :)-  Invite all Facebook Friends

Ето и снимка на разширението:

Това скриптче е на GreaseMonkey, т.е. ако ползвате Chrome няма нужда да го инсталирате. Ако ползвате Firefox е необходимо да се инсталира GreaseMonkey .

При Chrome менажирането на разширенията става по два начина:
1. В адрес бара се въвежда следния адрес: chrome://extensions/
2. Втория вариант е от бутона "Tools" -> "Extensions"

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Прост DHS Bookmark Creator

Идеята на това просто php скриптче, е да направи Bookmark Folder с линкове от file.txt.

<?php
//DHS Bookmark Creator by amri

$links="links.txt";//Fail s linkowe
$bookmark="bookmark_links.html";//Kraen rezultat
$bookmark_title="DHS Bookmark- Links";//Zaglawie na bookmark

$fh = fopen($bookmark, 'w') or die("can't open file");
$head="<!DOCTYPE NETSCAPE-Bookmark-file-1>\n<META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=UTF-8'>
<TITLE>Bookmarks</TITLE>\n<H1>Bookmarks Menu</H1>\n<DT><H3>$bookmark_title</H3><DL><p>\n";
fwrite($fh, $head);

$mFile = file("$links");
foreach ($mFile as $line_num => $line)
{
$line=trim("$line");
$writeline="<DT><A HREF='$line'>$line</A>\n";
fwrite($fh, $writeline);
}

$foot="</DL><p>";
fwrite($fh, $foot);
?>

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Rss Finder- GreaseMonkey скрипт

Едно малко скриптче на GreaseMonkey което чеква за (RSS|Feed) във линковете и в (title|alt) на снимките:

mon:/tmp# cat 123.user.js
// ==UserScript==
// @name          Feed Finder
// @namespace     http://mpetrov.net
// @description   Script to Find RSS Feed on every page
// @include       *
// @exclude       http://www.exclude.com*
// ==/UserScript==

(function () {

for(var i=0;i<document.getElementsByTagName("a").length;i++)
{
if (  ((document.getElementsByTagName("a")[i].childNodes[0].nodeValue)).match(/rss|feed/gi))
{
document.getElementsByTagName("a")[i].setAttribute("style","border:20px solid red;");
};

if (  (document.getElementsByTagName("a")[i].getAttribute("href")).match(/rss|feed/gi) )
{
document.getElementsByTagName("a")[i].setAttribute("style","border:20px solid red;");
}
};

for(var i=0;i<document.getElementsByTagName("img").length;i++)
{
if (  (document.getElementsByTagName("img")[i].getAttribute("alt")).match(/rss|feed/gi) )
{
document.getElementsByTagName("img")[i].setAttribute("style","border:20px solid red;");
}
if (  (document.getElementsByTagName("img")[i].getAttribute("title")).match(/rss|feed/gi) )
{
document.getElementsByTagName("img")[i].setAttribute("style","border:20px solid red;");
}
};
})();

PS: За толкова отделено време такъв резултат :P . Ако някои желае да направи подобрения може да изпрати кода за да го добавя.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

MySQL: Един потребител с пълен достъп до 3 бази данни

Идеята на играчката- закачката е един MySQL user да има пълен достъп до 3 бази данни на една и съща машина. Ето го и супер сложното решение:

mysql> use mysql
Database changed

INSERT INTO db VALUES('localhost','db','muser','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y ','Y','Y','Y','Y','Y');
INSERT INTO db VALUES('localhost','db1','muser','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y ','Y','Y','Y','Y','Y');
INSERT INTO db VALUES('localhost','db2','muser','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y ','Y','Y','Y','Y','Y');

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.47 sec)

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Използване на MySQL Event Scheduler в MySQL >= 5.1.12

В тази публикация ще покажа как се ползва "MySQL Event Scheduler"- създаване на events.

Какво ме провокира да напиша тази публикация ?
-- Видях, че един съфорумец от webmasterbg.org се нуждае от помощ по въпроса и реших да я напиша с идеята да бъде полезна на повече хора.

Част 1(Подготвяне на "MySQL Event Scheduler")

Преди да се използва "MySQL Event Scheduler" ще се наложи проверка версията на MySQL, понеже "MySQL Event Scheduler" се поддържа от версия 5.1.12 и по- нови.

mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 5.1.38    |
+-----------+
1 row in set (0,04 sec)

Вижда се, че тази версия поддържа MySQL Event Scheduler и сега остава да се провери дали е активиран.

mysql> SHOW VARIABLES LIKE 'event_scheduler';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | OFF   |
+-----------------+-------+
1 row in set (0,00 sec)

В случая не е активен. За да се активира е необходимо да се изпълнят следните заявки:

SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;

Респективно за да бъде деактивиран

SET GLOBAL event_scheduler = OFF;
SET @@global.event_scheduler = OFF;
SET GLOBAL event_scheduler = 0;
SET @@global.event_scheduler = 0;

За да не се налага изпълняване на по- горните редове ще бъде активиран директно от my.cnf

event_scheduler=ON

и да се деактивира:

event_scheduler=DISABLED

Необходимо е да се провери дали MySQL Scheduler е активен със следната заявка:

mysql> SHOW VARIABLES LIKE 'event_scheduler';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | ON    |
+-----------------+-------+
1 row in set (0,00 sec)

Част 2 (Пример за създаване на event в "MySQL Event Scheduler")

След като става ясно, че е активен е необходимо да се премине към следващата част от публикацията, а именно създаване на таблица и event.

Ще се използва тестова база "test" и създаване на тестова таблица "t1" като се добави един ред "произволен запис" в нея.

use test;

CREATE TABLE `t1` (
`id` int(11) NOT NULL,
`weight` int(11) NOT NULL,
`query` varchar(3072) NOT NULL,
`group_id` int(11) DEFAULT NULL,
KEY `query` (`query`) )
ENGINE=myisam DEFAULT CHARSET=latin1;

Добавя се фиктивен ред в таблицата "t1":

insert into t1 (weight,query,group_id) values ('1','mysql rulz','1');

Сега вече ще се направи event в които да се укаже, че таблицата "t1" ще бъде изтривана или truncate ежедневно.

CREATE event event_test on schedule every 1 day do truncate test.t1;

Ето подобен пример, но за 1 минута(по- лесен за тестване на цялата публикация)
CREATE event event_test on schedule every 1 minute do truncate test.t1;

След 1 ден таблицата "t1" ще бъде изтрита.

Добра информация е да се знае как се изтрива event. Ето го и начина:

mysql> drop event event_test;
Query OK, 0 rows affected (0,00 sec)

Част 3 (Мониторинг на event  "MySQL Event Scheduler")

От тук може да се види по- подробна инфо за този schedule

select * from information_schema.events \G

*************************** 1. row ***************************
EVENT_CATALOG: NULL
EVENT_SCHEMA: test
EVENT_NAME: event_test
DEFINER: root@localhost
TIME_ZONE: SYSTEM
EVENT_BODY: SQL
EVENT_DEFINITION: truncate test.t1
EVENT_TYPE: RECURRING
EXECUTE_AT: NULL
INTERVAL_VALUE: 1
INTERVAL_FIELD: DAY
SQL_MODE:
STARTS: 2010-10-02 11:27:23
ENDS: NULL
STATUS: ENABLED
ON_COMPLETION: NOT PRESERVE
CREATED: 2010-10-02 11:27:23
LAST_ALTERED: 2010-10-02 11:27:23
LAST_EXECUTED: 2010-10-02 11:27:23
EVENT_COMMENT:
ORIGINATOR: 0
CHARACTER_SET_CLIENT: latin1
COLLATION_CONNECTION: latin1_swedish_ci
DATABASE_COLLATION: latin1_swedish_ci
1 row in set (0,00 sec)

Ето няколко решения за какво може да е полезно това:

1. Имате таблица с IP адресите на вашите посетители за деня.
2. Правите дневни калкулации в таблици които е необходимо да се нулират в края на деня.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Личен Блог на Мартин Петров