ӘӨЖ 004.9
Б.Т. Торобеков1, Г.Ж.
Жетимекова2
И. Раззаков
атындағы Қырғыз мемлекеттік поитехникалық университеті1
техника
ғылымдарының кандидаты, профессор
Е.А. Бөкетов атындағы
Қарағанды мемлекеттік университеті2
аға
оқытушы
РНР тілі арқылы аутентификация жасаудың ерекшеліктері
Мақалада аутентификация үшін РНР
және MySQL түрлі мүмкіндіктерін қалай
қолдануға болатыны жазылады.
Мақалада келесі сұрақтар
қарастырылады:
- Кірушулердің идентификациясы.
- Қол жеткізуді бақылауды
жүзеге асыру.
- Базалық аутентификациясы. РНР да
базалық аутентификациясы қолдану.
- .htaccess сервера Apache файлдарының көмегімен
базалық аутентификациясын қолдану.
- IS
да базалық аутентификациясын қолдану.
- mod_auth_mysql модулі арқылы
аутентификацияны қолдану.
- аутентификацияның меншікті
әдісін құру.
Web — анонимдік орта, дегенмен сайтта кім
болғанын білген де дұрыс. Кірушінің конфиденциалдығы
үшін аз ғана ақпарат алуға болады. Серверлер серверге
қосылған компьютерлер мен жүйелер туралы көп
ақпарат ала алады. Әдетте Web — браузер өзін браузердің
атын, версиясын, операциялық жүйесін көрсетеді. Сонымен
қоса тасымалдаушыны мониторының түсі мен браузер
терезесінің өлшемін білуге мүмкіндігі бар.
Internet — ке қосылған әрбір
компьютер қайталанбас IP-адреске ие. IP-адрестен көп ақпарат
ала алмайсыз. Осы адресті кім білсе, ол адамның географиялық орнын
анықтай алады. Кейбір адрестер ақпаратты көп берсе, ал
басқалары аз береді. Негізінен, Internet — ке тұрақты
қосылған компьютерлер тұрақты IP — адреске ие болады.
Ал Internet-провайдерлерге қосылған кезде ол IP-адрестер
провайдердің уақытша адресіне ие болады. Келесі жолы осы адресті
көрсетіп, ол басқа кірушіде болуы мүмкін.
Браузер беретін ақпарат кірушіні
толығымен табуға мүмкіндік бермейді.
Көптеген Web-сайттар өзі туралы
барлық ақпаратты енгізгенді талап етеді. Мысалы, New York Times
(http://www.nj1imes.com) газетінің электрондық түрі
ақпаратты тек өзі туралы барлық мәліметті енгізгеннен
кейін ғана береді. Slashdot (http://www.slashdot.org) компьютерщиктерге арналған
жаңалықтар мен дискуссия сайты тіркелген кірушілерге жалған
атымен (nickname) өзіне арналған интерфейсті баптауға,
дискуссияларға қатысуға мүмкіндік береді. Электрондық
коммерция сайтының көбісі бірінші тапсырыс кезінде барлық
ақпаратты толық енгізгенін талап етеді. Бұл дегеніміз, сатып
алушы әрбір тапсырыс кезінде өзі туралы ақпаратты енгізе
берудің керегі жоқ екенін көрсетеді.
Кіруші туралы ақпаратты сұрап
алғаннан кейін, келесі кірген кезде осы ақпаратты сақтап
қалу өте маңызды. Егер де белгілі бір компьютерден белгілі
бір тұтынушының атын қолданып кірсе, тұтынушы
компьютерінде cookie-жиын құруға болады.
Тұтынушылардың көбісіне бұл тұжырым дұрыс
емес. Көбінесе көптеген адамдар бір компьютермен, немесе бір адам
көптеген компьютерді қолданады. Сондықтан да бір уақыт
аралығында кірушіден оның кім екенін сұрап отыру керек.
Осыған толықтыру ретінде тұтынушыдан ол нақты сол адам
екенін растайтын дәлелдемелер ұсынуын талап ету керек.
Жоғарыда айтылғандай, кірушіден
өзінің сол тұлға екенін дәлелдеу шарасы
аутентификация деп аталады. Web— те аутентификацияның қарапайым
тәсілі — ол кірушіден қайталанбас ат пен кілтсөзді енгізуді
талап ету болып табылады. Аутентификация әдетте белгілі бір беттерге
немесе ресурсттарға қол жеткізуді шектеуге немесе мүлдем
тыйым салуға арналған. Аутентификация міндетті емес немесе
басқа да мақсаттарға қолданылуы мүмкін, мысалы,
тұлғаландыру үшін.
1 – сурет. HTML-форма кірушінің аты мен кілтсөзін талап етуде
2 – сурет. Кіруші мәліметтерді қате
енгізсе, қате туралы хаттама шығады
3 – сурет. Ат пен кілтсөз дұрыс
енгізілсе, сценарий құпиялы мәлімет шығарады
Егер де қосылу барысында параметрлер
тұрса, олар дұрыс емес және де қате деген мәлімет
бейнеленеді (2 - сурет).
Егер де қосылу барысында параметрлер
тұрса, олар дұрыс болса, кірушіге дұрыс мәлімет
көрінеді. Біздің жағдайымызда мәліметтер 3 - суретте
көрсетілген. Функционалдықты құру үшін код сурет 1,
2 және 3 көрсетіліп, листинге 1 келтірілген.
Листинг 1 secret.php — аутентификацияның
қарапайым механизмі үшін РНР- мен HTML-коды
if(!isset($name)&&lisset($password))
// пайдаланушы аты мен паролін енгізуі қажет
<hl>Flease Log In</hl>
This page is secret.
<form method = post action =
"secret.php">
<table border = 1>
<tr>
<th> Username </th>
<td> <input type = text name = name>
</td>
</tr>
<tr>
<th> Password </th>
<td> -cinput type = password name = password> </td>
</tr>
<tr>
<td colspan =2 align = center>
<input type = submit value = "Log
In">
</td>
</tr>
</table>
</form>
<?
else if($name=="user"SS$password=="pass")
{
// Пайдаланушының аты мен паролі дұрыс
echo "<hl>Here it is!</hl>";
echo "I bet you are glad you can see this
secret page.",
else
{
// Пайдаланушының аты мен паролі дұрыс
емес
echo "<h!X3o Away!</hl>";
echo "You are not authorized to view this
resource.";
?>
Листинг 1 - де көрсетілген код тіркелген
кірушілерге қорғалған бетті көрсететін қарапайым
механизмді іске қосады, бірақ та бірнеше мәселелер бар.
Листинг 2. createauthdb.php — бұл
сұраныс auth деректер қорын, аuth кестесін және екі
пайдаланушыны құрады
<?
create database auth;
use auth;
create table auth (
name varchar(lO) not null,
pass varchar(30) not null,
primary key (name)
);
insert into auth values
( 'user', 'pass');
insert into auth values
( 'testuser', password('test!23') );
grant select, insert, update, delete
on auth.*
to webauthglocalhost
identified by 'webauth';
?>
Бұл сценарий:
- тек бір ғана ат пен кілтсөзді
растау
- кілтсөзді қарапайым мәтін
түрінде сақтау
- тек бір бетті ғана қорғайды
- қарапайым мәтін түріндегі кілтсөзді
береді
Айтылған мәселелерді
әртүрлі жолдармен шешуге болады.
Кілтсөздерді
сақтау. Кілтсөздерді
сақтауға көптеген жерлер бар. Сценарийдің ішінде
мәліметтерді өзгерту қиын. Өзін өзі
өзгертетін сценарийді жазуға болады, бірақ та ол жақсы
ой емес.
Сценарийдің немесе басқа да
файлдардың ішіне кірушілердің санына шектеу қойылуы керек.
Себебі, ол сценаридің орындалу жылдамдығына әсерін тигізеді.
Егер де көп элементті сақтау немесе көп файлдар ішінде іздеу
жүргізу керек болса, онда екі өлшемді файлдың орнына
мәліметтер базасын қарастырған жөн болады. Файл мен
мәліметтер базасы арасындағы таңдаудың
практикалық әдісі: егер де сақтауды немесе іздеуді 100
элементтерден артықта жүргізсе, онда мәліметтер базасын
таңдаған дұрыс.
Атаулар мен кілтсөздерді сақтауға
мәліметтер базасын таңдау сценарийді қиындатпайды, дегенмен
кірушілер арасындағы аутентификацияны тез жүргізуге мүмкіндік
береді. Тағы да бұл қолданушыларды қосу мен
өшіруге мүмкіндік беріп, қолданушыларға
кілтсөздерін өзгертуге мүмкіндік береді.
Пайдаланылған
әдебиеттер тізімі
1
Веллинг Люк, Томсон
Лаура. Разработка
Web-приложений на PHP и MySQL: Пер. с англ./Лаура Томсон, Люк Веллинг. – К.:
Издательство “ДиаСофт”, 2002.-672с.
2 Веллинг Люк, Томсон Лора. Разработка Web-приложений с помощью PHP и MySQL, 3-е издание. : Пер. с англ. – М.: Издательский дом “Вильямс”, 2005.-880с. : ил. – Парал. тит.англ.
3 Кухарчик А. PHP: обучение на примерах/ А. Кухарчик. – Мр.: Новое знание, 2004. –237 с.
4 Прохоренок Н.А. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. – СПб.:БХВ-Петербург, 2008. – 640 с.: ил. + CD-ROM – (Профессиональное программирование)