ΡΡΠ½ΠΊΡΠΈΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π² php
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π½Π° PHP
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π²ΠΎΠΊΡΡΠ³: ΡΠΎΡΡΠΌΡ, ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½Ρ, Π³ΠΎΡΡΠ΅Π²ΡΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ Ρ.Π΄. ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΡΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΡΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° (ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ Π΄ΠΎΠΌΠ°ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΠΊΠ° ΠΠ°ΡΠΈ ΠΡΠΏΠΊΠΈΠ½Π° ΠΈΠ»ΠΈ Π½Π΅ Π²ΠΈΠ·ΠΈΡΠ½Π°Ρ ΠΊΠ°ΡΡΠΎΡΠΊΠ°, ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ). Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ Ρ ΠΎΡΡ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ, ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π»ΡΡΡΠ΅ ΡΡΠΎ Π²ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ.
ΠΠΎΠ΄Π΅Π»Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ:
ΠΠ»ΠΈΠ΅Π½Ρ
Π‘Π΅ΡΠ²Π΅Ρ MySQL
ΠΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π»ΠΎΠ³ΠΈΠ½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ(Π² Π΄Π²ΠΎΠΉΠ½ΠΎΠΌ md5 ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠΈ)
ΠΡΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ, ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡΡΡ Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π²Π΅ΡΠ½Ρ, ΡΠΎ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½Π°Ρ ΡΡΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ Π΅ΡΠΈΡΡΠ΅ΡΡΡΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡΡ Π² ΠΠ Π² ΡΡΡΠΎΠΊΡ user_hash. Π’Π°ΠΊΠΆΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡΡ IP Π°Π΄ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ(Π½ΠΎ ΡΡΠΎ Ρ Π½Π°Ρ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΡΠΎ-ΡΠΎ ΡΠΈΠ΄ΠΈΡ ΡΠ΅ΡΠ΅Π· Proxy, Π° Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ IP Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ. ΡΡΡ ΡΠΆΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ°ΠΌ Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΠΈΡΠ°ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈΠ»ΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ). Π ΠΊΡΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ hash.
ΠΠΎΡΠ΅ΠΌΡ Π½Π°Π΄ΠΎ Ρ
ΡΠ°Π½ΠΈΡΡ Π² ΠΊΡΠΊΠ°Ρ
Ρ
Π΅Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π° Π½Π΅ Ρ
Π΅Ρ ΠΏΠ°ΡΠΎΠ»Ρ?
1. ΠΠ·-Π·Π° Π½Π΅Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°, Π²ΠΎ Π²ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΡΡΠΊΠΈ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΠΉΡΡ ΡΡΠΈΠΌΠΈ Π΄ΡΡΠΊΠ°ΠΌΠΈ, Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΠ°ΡΠΈΡΡ Ρ
Π΅Ρ ΠΏΠ°ΡΠΎΠ»Ρ ΠΈΠ· ΠΠ ΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ Π² ΡΠ²ΠΎΠΈ ΠΊΡΠΊΠΈ, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π°ΠΊΡΡΡΡΠΌ Π΄Π°Π½Π½ΡΠΌ. Π Π½Π°ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠ»ΡΡΠ°Π΅, Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Ρ
Π΅Ρ ΠΏΠ°ΡΠΎΠ»Ρ Π½Π΅ ΡΠ΅ΠΌ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Ρ
Π°ΠΊΠ΅ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΎΠ½ Π΅Π³ΠΎ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ(ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π½Π° ΡΡΠΎ ΠΎΠ½ ΠΏΠΎΡΡΠ°ΡΠΈΡ Π½Π΅ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅ΡΡΡ, Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ Π³ΠΎΠ΄) Π° Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΈΠΌ Ρ
Π΅ΡΠ΅ΠΌ Π΅ΠΌΡ Π½Π΅Π³Π΄Π΅, Π²Π΅Π΄Ρ Ρ Π½Π°Ρ ΠΏΡΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ²ΠΎΠΉ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ Ρ
Π΅Ρ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½Π½ΡΠΉ ΠΊ IP ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
2. ΠΡΠ»ΠΈ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½ΠΈΠΊ Π²ΡΡΠ°ΡΠΈΡ ΡΡΠΎΡΠ½ΠΎΠΌ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ Ρ
Π΅Ρ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌ ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ(ΡΠ°Π·Π²Π΅ Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ΅ΡΠΈΠ» ΠΏΡΠΈΠ½Π΅Π±ΡΠ΅ΡΡ ΡΠ²ΠΎΠ΅ΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΡΠ½ΠΎΡΡΡΡ ΠΈ Π²ΡΠΊΠ»ΡΡΠΈΠ» ΠΏΡΠΈΠ²ΡΠ·ΠΊΡ ΠΊ IP ΠΏΡΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ).
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
Π‘ΡΡΡΠΊΡΡΡΠ° ΡΠ°Π±Π»ΠΈΡΡ `users` Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ‘testtable’
register.php
login.php
check.php
logout.php
ΠΠ»Ρ Π·Π°ΡΠΈΡΡ ΡΠΎΡΠΌΡ Π»ΠΎΠ³ΠΈΠ½Π° ΠΎΡ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΏΡΡ ΠΈΠ»ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ Π½Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ.
ΠΠ²ΡΠΎΡ: http://jiexaspb.habrahabr.ru/. ΠΠ΄Π°ΠΏΡΠ°ΡΠΈΡ ΠΏΠΎΠ΄ PHP 5.5 ΠΈ MySQL 5.7 KDG.
ΠΡΠΊΠΈ Ρ ΡΠ»Π°Π³ΠΎΠΌ HttpOnly Π½Π΅ Π²ΠΈΠ΄Π½Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΠΎΠΌΡ javascript-ΠΊΠΎΠ΄Ρ, Π° ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ. ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Ρ Π²Π°Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π² javascript. Π Π²ΠΎΡ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΡ, Π½Π°ΡΠ΅Π΄ΡΠ΅ΠΌΡ XSS β Π° XSS ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ Π³Π΄Π΅-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π°ΠΉΠ΄Π΅ΡΡΡ β ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ HttpOnly Π½Π° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΎΠ½Π½ΡΡ ΠΊΡΠΊΠ°Ρ Π΄ΠΎΡΡΠ°Π²ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π΄ΠΎΡΡΠΈ.
ΠΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ°ΠΉΡΠ΅. Π‘Π΅ΡΡΠΈΠΈ ΠΈ ΠΊΡΠΊΠΈ
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° HTTP
ΠΠ°ΠΊ Π²Ρ ΡΠ·Π½Π°Π»ΠΈ ΠΈΠ· ΠΏΡΠΎΡΠ»ΠΎΠΉ Π³Π»Π°Π²Ρ, ΡΠ°Π±ΠΎΡΠ° Ρ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°ΠΌΠΈ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ HTTP.
ΠΡΠΎ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΏΠΎ ΡΡ
Π΅ΠΌΠ΅ Β«Π·Π°ΠΏΡΠΎΡ-ΠΎΡΠ²Π΅ΡΒ». Π’ΠΎ Π΅ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ (Π±ΡΠ°ΡΠ·Π΅Ρ) ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΡΡΠ»Π°Π΅Ρ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Π·Π°ΠΏΡΠΎΡ, ΡΠΎΡΡΠΎΡΡΠΈΠΉ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΎΡΠ²Π΅Ρ Π² Π²ΠΈΠ΄Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΎΡΠ²Π΅ΡΠ° ΠΈ ΡΠ΅Π»Π° ΡΠ°ΠΌΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΈΡ
Π΄ΡΡΠ³ΠΈΡ
ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ², HTTP Π½Π΅ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ°ΡΠ°ΠΌΠΈ Β«Π·Π°ΠΏΡΠΎΡ-ΠΎΡΠ²Π΅ΡΒ».
ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅ Β«Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΒ» ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²; ΠΊΠ°ΠΆΠ΄ΡΠΉ Π·Π°ΠΏΡΠΎΡ ΠΎΠ½ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Ρ Β«ΡΠΈΡΡΠΎΠ³ΠΎ Π»ΠΈΡΡΠ°Β».
ΠΠ»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΡ: Π·Π°ΠΏΡΠΎΡΠΈΠ» ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΡΠ°Π½ΠΈΡΡ Π΄Π΅ΡΡΡΡ ΡΠ°Π· ΠΈΠ»ΠΈ Π΄Π΅ΡΡΡΡ ΡΠ°Π·Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΠΎ ΡΠ°Π·Ρ. ΠΠ»Ρ Π½Π΅Π³ΠΎ Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅.
Π§Π΅ΠΌ ΡΡΠΎ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π»Ρ Π½Π°Ρ?
Π§Π°ΡΡΠΎ ΡΠ°ΠΉΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΌΠ΅ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΈΡ
ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Π΅ΠΉ, ΡΡΠΎΠ±Ρ ΡΠΎΡ
ΡΠ°Π½ΡΡΡ ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅ ΠΊΠ°ΠΊΡΡ-Π»ΠΈΠ±ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°Π³Π°Π·ΠΈΠ½Ρ ΠΌΠΎΠ³ΡΡ ΡΠΎΡ
ΡΠ°Π½ΡΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΏΡΠΎΡΠΌΠΎΡΡΠΎΠ², ΡΡΠΎΠ±Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»ΡΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΠ΅ ΠΈΠΌ ΡΠΎΠ²Π°ΡΡ. ΠΠ»ΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΎΡ Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ ΠΌΠΎΠ³ Π±Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΠ΅ ΠΈΡ
ΡΡΠ±ΡΠΈΠΊΠΈ.
Π ΡΡΠ°ΡΡΡΡ, ΠΏΡΠΎΡΠΎΠΊΠΎΠ» HTTP, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅.
Cookies
Cookies (Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ Β«ΠΊΡΠΊΠΈΒ») β Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ Π΄Π°Π½Π½ΡΡ
, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π±ΡΠ°ΡΠ·Π΅ΡΡ.
ΠΡΠ°ΡΠ·Π΅Ρ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ ΠΈΡ
Ρ ΡΠ΅Π±Ρ, Π° ΠΏΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ, Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠ·Π½Π°ΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ Β«ΡΡΠ°ΡΠΎΠ³ΠΎΒ» ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ.
ΠΡΠΈΠΌΠ΅Ρ
ΠΠ°Π΄Π°ΡΠ° ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠ°: ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΠΎΠ½ ΠΏΠΎΡΠ΅ΡΠΈΠ» Π½Π°Ρ ΡΠ°ΠΉΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅ΠΌ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΊΡΠΊΠ΅, ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΡΠΊΠΈ: ΡΡΠ½ΠΊΡΠΈΡ setcookie
Π―Π²Π»ΡΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, PHP ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅Ρ, Π° Π·Π½Π°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΈ ΡΠΈΡΠ°ΡΡ ΠΊΡΠΊΠΈ.
Π§ΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΡ ΠΊΡΠΊΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²Π½Π°ΡΠ°Π»Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡΡΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌΠΈ:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠΎΠΊ ΠΆΠΈΠ·Π½ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π²Π΅Π»ΠΈΡΠΈΠ½Π΅. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΡΠΊΠ° Π±ΡΠ΄Π΅Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎΠ²Π½ΠΎ 30 Π΄Π½Π΅ΠΉ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ.
ΠΠ°ΠΊ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΊΡΠΊΠΈ
Π‘ΠΎΠ±ΠΈΡΠ°Π΅ΠΌ Π²ΡΡ Π²ΠΌΠ΅ΡΡΠ΅
Π’Π΅ΠΏΠ΅ΡΡ, Π½Π°ΡΡΠΈΠ²ΡΠΈΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΈ ΡΠΈΡΠ°ΡΡ ΠΊΡΠΊΠΈ, Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΡΠΈΡΠ°ΡΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ:
Π‘Π΅ΡΡΠΈΠΈ
ΠΡ ΡΠΆΠ΅ ΡΠΌΠ΅Π΅ΠΌ ΡΠΎΡ
ΡΠ°Π½ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΡΠΊ. ΠΠΎ Π·Π°ΡΠ΅ΠΌ ΠΆΠ΅ Π½Π°ΠΌ Π΅ΡΡ ΡΠ΅ΡΡΠΈΠΈ, ΠΈ Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡΠΆΠ½Ρ?
Π‘Π΅ΡΡΠΈΠΈ, ΠΎΠ½ΠΈ ΠΆΠ΅ ΡΠ΅Π°Π½ΡΡ, ΡΡΠΎ, ΠΏΠΎ ΡΡΡΠΈ, ΠΏΡΠΎΡΡΠΎ ΡΠ΄ΠΎΠ±Π½Π°Ρ ΠΎΠ±ΡΡΡΠΊΠ° Π½Π°Π΄ ΠΊΡΠΊΠ°ΠΌΠΈ. ΠΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Ρ
ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅, ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π½ΠΎ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΡΠ»ΠΈΡΠΈΡΠΌΠΈ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ:
ΠΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½Ρ ΡΠ΅ΡΡΠΈΠΈ
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΡΠΈΠΉ Π² PHP, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π»ΡΠ±ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ. ΠΠΎ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΡΠ΅Π°Π½ΡΠ°.
ΠΠ΅ΡΠ΅ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ΅ΡΡΠΈΠΈ:
ΠΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°Π³Π°Π·ΠΈΠ½. ΠΡΠ΅ Π΅Π³ΠΎ ΡΡΡΠ°Π½ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° Π΄Π²Π΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ: ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΠΈ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠ΅.
Π ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΎΠ²Π°ΡΠ΅, ΡΡΠ»ΠΎΠ²ΠΈΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. Π ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΌ β ΠΊΠΎΡΠ·ΠΈΠ½Π° ΠΏΠΎΠΊΡΠΏΠΎΠΊ, ΠΈΡΡΠΎΡΠΈΡ Π·Π°ΠΊΠ°Π·ΠΎΠ².
Π‘ΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΊΠΎΡΠ·ΠΈΠ½Π° ΠΏΠΎΠΊΡΠΏΠΎΠΊ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ²ΠΎΡ, Π° ΠΈΠΌΠ΅ΡΡ ΠΊ Π½Π΅ΠΉ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌ Π²Π»Π°Π΄Π΅Π»Π΅Ρ ΠΈ Π½ΠΈΠΊΡΠΎ Π±ΠΎΠ»ΡΡΠ΅.
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠ°ΠΉΡΠ° ΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ.
ΠΠ΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π²ΡΠ΅Π³Π΄Π° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ°Π³ΠΎΠ²:
ΠΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡ Π΄Π²Π° ΡΠ΅ΡΠΌΠΈΠ½Π°: Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ.
ΠΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ β ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° (ΠΏΠ°ΡΠ° Π»ΠΎΠ³ΠΈΠ½-ΠΏΠ°ΡΠΎΠ»Ρ).
ΠΠ²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ β ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠ°Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠΌ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΎΡΠΌΡ Π²Ρ
ΠΎΠ΄Π° ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΡΠ²ΠΎΠΉ Π»ΠΈΡΠ½ΡΠΉ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ. Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΠΉ ΡΠΎΡΠΌΡ, Π»ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΠΈ Π΅Π³ΠΎ ΠΏΠ°ΡΠΎΠ»Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ.
ΠΠ²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ°Π±ΠΎΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΄Π°Π»ΡΠ΅Ρ ΡΠΎΠ²Π°Ρ ΠΈΠ· ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠΎΡΠ·ΠΈΠ½Ρ. ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ²Π°ΡΠ° ΠΊ ΠΊΠΎΡΠ·ΠΈΠ½Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ΅Π· ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠ³ Π±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠΎΠ²Π°Ρ ΠΈΠ· ΡΡΠΆΠΎΠΉ ΠΊΠΎΡΠ·ΠΈΠ½Ρ.
ΠΠΎΠ³ΠΈΠΊΠ° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΠΏΠΎΡΡΡ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ ΠΏΡΠΈ Π²Ρ ΠΎΠ΄Π΅ Π½Π° ΡΠ°ΠΉΡ. Π Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΌΠΎΠ³ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π²Ρ ΠΎΠ΄ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ: Π³ΡΡΠΏΠΏΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π²ΠΈΠ΄Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΡΠ΅ΡΡΡΡΡ, ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ ΡΠΎΠ»Π΅ΠΉ ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΡΠΎΠΉ ΡΠ΅ΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΡΡΠΈΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π³Π»Π°Π²Ρ. ΠΡ Π½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π±Π½ΠΈΠΊΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠ° ΡΠ΅ΠΌΠ° Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ Β«Π±Π°Π·ΠΎΠ²ΠΎΠΉΒ».
Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π½Π° ΡΠ°ΠΉΡΠ΅
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΡ Π½Π°ΡΠ½Π΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΡΠ°ΠΉΡΠ΅, ΠΏΡΠΈΠ΄ΡΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΡΠΌΡ Π΄Π»Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°.
ΠΠΊΠΊΠ°ΡΠ½Ρ β ΡΡΠΎ ΡΡΡΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
Π§ΡΠΎΠ±Ρ Π·Π°Π²Π΅ΡΡΠΈ Π°ΠΊΠΊΠ°ΡΠ½Ρ, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΉΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ β ΡΡΠΎ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΡ, Π³Π΄Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ²ΠΎΡ ΠΏΠΎΡΡΡ, ΠΏΠ°ΡΠΎΠ»Ρ, ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠΎΡΠΌΡ ΡΠΎΡ
ΡΠ°Π½ΡΡΡΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
ΠΊΠ°ΠΊ Π΅ΡΡΡ. ΠΠΎ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»ΠΈΡΡ ΠΎΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.
Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ
ΠΠ°ΡΠΎΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ β ΡΡΠΎ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π² Ρ
ΠΎΠ΄Π΅ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠ½Π°Ρ ΠΏΠ°ΡΠΎΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠΉΡΠΈ Π½Π° ΡΠ°ΠΉΡ ΠΏΠΎΠ΄ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½Π΅ΠΌ. ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΏΠ°ΡΠΎΠ»Ρ Π½Π΅Π»ΡΠ·Ρ Ρ
ΡΠ°Π½ΠΈΡΡ Π² Π±Π°Π·Π΅ Π² ΠΎΡΠΊΡΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅. ΠΠ΅Π΄Ρ Π΅ΡΠ»ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· ΠΠ ΡΠ°ΠΉΡΠ° ΡΠΊΡΠ°Π΄ΡΡ, ΡΠΎ Π΄Π°Π½Π½ΡΠ΅ Π²ΡΠ΅Ρ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΡΠ°Π½ΡΡ ΡΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ.
ΠΠΌΠ΅ΡΡΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠ°ΡΠΎΠ»Ρ, Π² Π±Π°Π·Π΅ Π±ΡΠ΄ΡΡ Ρ
ΡΠ°Π½ΠΈΡΡΡΡ ΠΈΡ
ΠΎΡΠΏΠ΅ΡΠ°ΡΠΊΠΈ β Ρ
ΡΡΠΈ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Ρ Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡΠΏΠ΅ΡΠ°ΡΠΎΠΊ (Ρ
ΡΡ) β ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ
ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²Π΅ΡΠ½ΡΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ, ΡΠ°ΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΌΠ΅Π΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ Π»ΡΠ±ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΊ ΡΡΡΠΎΠΊΠ΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 32 ΠΈΠ»ΠΈ 64 ΡΠΈΠΌΠ²ΠΎΠ»Π°). ΠΡΠΈΡΡΠΌ Π»ΡΠ±ΠΎΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π±ΡΠ΄Ρ ΡΡΠΎ Π²ΡΠ΅ ΡΡΠ°ΡΡΠΈ ΠΈΠ· ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ, ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎ ΡΠ»ΠΎΠ²ΠΎ, Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠΏΠ΅ΡΠ°ΡΠΎΠΊ. ΠΠΎΠ²ΡΠΎΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΈΡΡ
ΠΎΠ΄Π½ΠΈΠΊΠ° Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ Ρ
ΡΡ.
ΠΠ±ΡΠ°ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ (ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ· ΠΎΡΠΏΠ΅ΡΠ°ΡΠΊΠ° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π») Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°.
ΠΠΎΠ·ΡΠΌΡΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ. Π£ Π½Π°Ρ Π΅ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠΏΠ΅ΡΠ°ΡΠΎΠΊ. ΠΡΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ°:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Ρ
ΡΡΠΈΡΡΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ SHA-1 Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ:
6b3cb0df50fe814dee886b4e1c747dda6ce88b37
Π₯ΡΡΠΈΡΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΠΎ ΡΠ΅ΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» Π½Π΅ Π±ΡΠ» ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄ΡΠ½, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ Ρ
ΡΡ ΠΈ ΡΡΠ°Π²Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠΉ Ρ
ΡΡ Ρ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΠΌ Π½Π° ΡΠ°ΠΉΡΠ΅. ΠΡΠ»ΠΈ Π² ΡΠ°ΠΉΠ»Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΡΡ Ρ
ΠΎΡΡ ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ, ΡΠΎ ΡΡΠΈ ΠΎΡΠΏΠ΅ΡΠ°ΡΠΊΠΈ Π±ΡΠ΄ΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠ°Π·Π½ΡΠΌΠΈ.
ΠΠ°ΠΌ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ
ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
ΠΠ΅ΡΠ½ΡΠΌΡΡ ΠΊ ΡΠΎΡΠΌΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ.
ΠΡΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ, ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠ°ΡΠΎΠ»Ρ Π»ΡΡΡΠ΅ Ρ
ΡΠ°Π½ΠΈΡΡ Π΅Π³ΠΎ ΠΎΡΠΏΠ΅ΡΠ°ΡΠΎΠΊ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠΏΠ΅ΡΠ°ΡΠΊΠ° ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Ρ
ΡΡΠΈΡΡΡΡΠΈΡ
ΡΡΠ½ΠΊΡΠΈΠΉ. Π ΡΡΠ°ΡΡΡΡ, Π½Π°ΠΌ Π½Π΅ Π½Π°Π΄ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π² ΠΈΡ
ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² PHP Π΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄Π΅Π»Π°Π΅Ρ ΡΠΎΠ²Π½ΠΎ ΡΠΎ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠ°ΠΊ ΠΈΠ· ΠΏΠ°ΡΠΎΠ»Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠΏΠ΅ΡΠ°ΡΠΎΠΊ, ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΡΠΉ Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π² Π±Π°Π·Π΅:
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠ°ΡΠΎΠ»Ρ ΠΏΡΠΈ Π²Ρ ΠΎΠ΄Π΅ Π½Π° ΡΠ°ΠΉΡ
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ°
Π‘Π΅ΡΡΠΈΠΈ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π·Π°Π»ΠΎΠ³ΠΈΠ½Π΅Π½Π½ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅. ΠΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ Π·Π΄Π΅ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ: Π²Π½ΡΡΡΠΈ ΡΡΠ΅Π½Π°ΡΠΈΡ, ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠΎΡΠΌΡ Π²Ρ
ΠΎΠ΄Π°, ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ Π½ΠΎΠ²Π°Ρ ΡΠ΅ΡΡΠΈΡ, ΠΊΡΠ΄Π° Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²ΠΎΡΠ΅Π΄ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅. Π’Π°ΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈΠ· ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· ΠΠ.
ΠΠ°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊΠΎΠ΄, ΠΏΡΠΎΠ²Π΅ΡΡΡΡΠΈΠΉ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΠΈ Π² ΡΡΠ΅Π½Π°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΠΊΡΡΡΡ ΠΎΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΡΠ»ΠΈ ΡΠ΅ΡΡΠΈΡ ΠΏΡΡΡΠ°, Π·Π½Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ» Π²Ρ
ΠΎΠ΄ Π½Π° ΡΠ°ΠΉΡ, ΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΎΠ½ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ.
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡ ΠΊΠΎΠ΄ ΠΎΡΠ²Π΅ΡΠ° 403 ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ Π½Π° Π³Π»Π°Π²Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΡΡ ΠΎΠ΄ Ρ ΡΠ°ΠΉΡΠ°
Π‘ΠΈΡΡΠ΅ΠΌΠ° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ cookie Π½Π° PHP
Π ΠΏΡΠΎΡΠ»ΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ ΠΈΠ·ΡΡΠΈΠ»ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ cookie Π² ΡΠ·ΡΠΊΠ΅ PHP.
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅
ΠΠ°ΡΠ½ΡΠΌ ΠΌΡ ΡΡΠΎ Π΄Π΅Π»ΠΎ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π±ΡΠ΄ΡΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΡΡΡ Ρ Π½Π°Ρ Π±ΡΠ΄ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ:
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΡΠΎΠ΄ΡΠΌΡΠ²Π°Π΅ΠΌ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ
ΠΠ΅ΡΠ²ΠΎΠ΅, ΠΎ ΡΡΠΌ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ β ΡΡΠΎ ΡΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π±ΡΠ΄Π΅Ρ.
ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ β Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° Ρ Π½Π°Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ 3 ΡΡΡΠ°Π½ΠΈΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΎΠΏΠΈΡΠ°Π»ΠΈ Π² Π’Π.
ΠΡΡ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π», ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½ Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠ»ΠΈ ΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ°Π΅ΠΌ Π’Π, ΡΠΎ ΠΏΠΎΠΉΠΌΡΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π΄Π²ΡΡ ΠΌΠ΅ΡΡΠ°Ρ β ΠΈ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ½Π°ΡΠΈΡ, ΡΡΠΎΠΈΡ Π²ΡΠ½Π΅ΡΡΠΈ ΡΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ», ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² Π΄Π²ΡΡ ΠΌΠ΅ΡΡΠ°Ρ ΡΡΠ°Π·Ρ.
ΠΠΈΡΠ΅ΠΌ ΠΊΠΎΠ΄
ΠΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΌΡ Π·Π°Π΄Π°Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π·Π΄Π΅ΡΡ.
ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ
ΠΡ Π²ΠΎΡ, Π²ΡΡ ΠΏΡΠΎΠ΄ΡΠΌΠ°Π»ΠΈ, ΠΎΡΡΠ°Π»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ. ΠΡΠ΅Π΄Π»Π°Π³Π°Ρ Π½Π°ΡΠ°ΡΡ Ρ Π½Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ°ΠΉΠ» usersDB.php ΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΌ Π² Π½Π΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, ΡΠ²Π»ΡΡΡΡΡ Π»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ Π² Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» auth.php. Π Π½ΡΠΌ Π½Π°ΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΠΉΠ» Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ .
Π ΡΠΈΠΊΠ»Π΅ ΠΌΡ ΠΏΡΠΎΠ±Π΅Π³Π°Π΅ΠΌΡΡ ΠΏΠΎ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΏΡΡΠ°Π΅ΠΌΡΡ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΌΠΈ Π»ΠΎΠ³ΠΈΠ½ΠΎΠΌ ΠΈ ΠΏΠ°ΡΠΎΠ»Π΅ΠΌ. ΠΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π½Π°ΠΉΠ΄Π΅Π½ β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ true. ΠΠ½Π°ΡΠ΅ β false.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ Π΅ΡΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π»ΠΎΠ³ΠΈΠ½ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ cookie Ρ ΠΊΠ»ΡΡΠ°ΠΌΠΈ login ΠΈ password Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ checkAuth. ΠΡΠΈ ΡΡΠΎΠΌ Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΉΠ΄ΡΡΡΡ, ΡΠΎ ΠΎΠ½Π° Π²Π΅ΡΠ½ΡΡ Π΅Π³ΠΎ login, Π° ΠΈΠ½Π°ΡΠ΅ β null. ΠΠ°Π·ΠΎΠ²ΡΠΌ ΡΡΡ Π½Π°ΡΡ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ getUserLogin.
ΠΠ° ΡΡΠΎΠΌ Π²ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π»ΠΎΠ³ΠΈΠ½Π° ΠΌΡ ΠΎΠΏΠΈΡΠ°Π»ΠΈ. Π’Π΅ΠΏΠ΅ΡΡ Π·Π°ΠΉΠΌΡΠΌΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΡΠ°Π½ΠΈΡΠΊΠ°ΠΌΠΈ.
ΠΠ»Π°Π²Π½Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ°
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ°ΠΉΠ» index.php. ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊΡ Ρ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ΠΌ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π»ΠΈΠ±ΠΎ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ. Π ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΠ΅Π· cookie, ΠΏΠΎΡΡΠΎΠΌΡ Π·Π΄Π΅ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΠΉΠ» auth.php.
ΠΠ°ΡΠ° Π³Π»Π°Π²Π½Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠΊΠ° Π³ΠΎΡΠΎΠ²Π°. ΠΠΎΠΆΠ½ΠΎ Π·Π°ΠΉΡΠΈ Π½Π° Π½Π΅Ρ ΠΈ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΌΡ Π½Π΅ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Ρ.
Π€ΠΎΡΠΌΠ° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΠΎΡΠΌΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ β ΡΠΎΠ·Π΄Π°ΡΠΌ ΡΠ°ΠΉΠ» login.php ΠΈ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° Π½Π°Π±ΡΠ°ΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΌΡ HTML-ΡΠΎΡΠΌΡ. Π¨Π°Π±Π»ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ .
ΠΠΎΠ³ΠΈΠΊΠ° ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ°Ρ β Π΅ΡΠ»ΠΈ Π±ΡΠ» ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ POST-Π·Π°ΠΏΡΠΎΡ, ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ Π»ΠΈ Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ Π±ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ.
ΠΡΠ»ΠΈ ΠΆΠ΅ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ cookie Ρ ΠΊΠ»ΡΡΠ°ΠΌΠΈ login ΠΈ password, Π² ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· POST-Π·Π°ΠΏΡΠΎΡΠ°. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡ Π½Π° Π³Π»Π°Π²Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ.
Π Π΅Π΄ΠΈΡΠ΅ΠΊΡ Π΄Π΅Π»Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π² HTTP-ΠΎΡΠ²Π΅ΡΠ΅. ΠΡΠΎΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Location ΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π² PHP ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ header β ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Π½Π΅ΠΉ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π΄Π΅ΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π½Π°ΡΡ ΡΡΡΠ°Π½ΠΈΡΠΊΡ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° Π²Π²Π΅Π΄ΡΠΌ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ ΠΏΠ°ΡΡ Π»ΠΎΠ³ΠΈΠ½Π° ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, 123:123.
ΠΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π·Π°ΠΉΠ΄Π΅ΠΌ ΠΏΠΎΠ΄ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ user. Π Π½Π°ΡΠ΅ΠΉ ΠΠ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΡΠΊΠ°Π·Π°Π½ ΠΏΠ°ΡΠΎΠ»Ρ 123. ΠΡΠΎΠ±ΡΠ΅ΠΌ.
Π£ΡΠΏΠ΅Ρ ! ΠΠ°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠΈΠ½ΡΠ»ΠΎ Π½Π° Π³Π»Π°Π²Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, Π³Π΄Π΅ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ!
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ
Π₯Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ
Π Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Ρ Π΅Ρ ΠΎΡ ΠΏΠ°ΡΠΎΠ»Ρ.
ΠΡΠ»ΠΈ ΠΏΠΎ-ΠΏΡΠΎΡΡΠΎΠΌΡ, ΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°Π΄ ΠΏΠ°ΡΠΎΠ»Π΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΡΡΠΎΠΊΡ, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅Π»ΡΠ·Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ.
ΠΠ²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΎΠΊΠ΅Π½Ρ
ΠΠΎΠΌΠΈΠΌΠΎ Ρ Π΅ΡΠ° ΠΏΠ°ΡΠΎΠ»Ρ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΈΠ½ΡΡΠΎ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΎΠΊΠ΅Π½Ρ (AuthToken). ΠΡΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½Π΅Π΅ ΠΈ Ρ ΠΊΡΡΠ΅ΠΉ ΠΊΡΠ°ΠΊΠΎΠ·ΡΠ±Ρ), ΠΊΠΎΡΠΎΡΠ°Ρ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . Π Π΅ΡΡ ΠΎΠ½Π° ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡ Π΄Π°, ΡΡΡΡ Π½Π΅ Π·Π°Π±ΡΠ», Π²ΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΡΠΎΠΊΡ Ρ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π±ΡΠ΄Ρ Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ Π½Π° github β Π²ΠΎΡ ΡΡΡ.
Π€ΠΎΡΠΌΠ° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π½Π° php
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΠΈΠ·ΡΡΠ°ΡΡ ΡΠ·ΡΠΊ PHP Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅. Π’Π΅ΠΌΠ° Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½Π΅Π³ΠΎ ΡΡΠΎΠΊΠ° β Β«ΠΡΠΎΡΡΠ°Ρ ΡΠΎΡΠΌΠ° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π½Π° PHPΒ». Π― ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π²Π°ΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΡΠΌΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ.
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠ°Π±ΠΎΡΠ΅, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠ΄ΡΠΌΠ°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΈ ΡΠ°Π±ΠΎΡΡ Π½Π°ΡΠ΅ΠΉ ΡΠΎΡΠΌΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΎΠΌ Π²ΠΎΠΏΠ»ΠΎΡΠΈΡΡ Π΅Ρ Π² ΠΆΠΈΠ·Π½Ρ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ β ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ php.
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅
ΠΡΠ°ΠΊ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½Π° ΡΠΎΡΠΌΠ° Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Π²Ρ ΠΎΠ΄Π° Π² ΡΠΈΡΡΠ΅ΠΌΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΏΠΎΠ»Ρ Β«Π»ΠΎΠ³ΠΈΠ½Β», Β«ΠΏΠ°ΡΠΎΠ»ΡΒ»ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠΎΠΉΡΠΈΒ», ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΡΠΈ ΠΏΠΎΠ»Ρ ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π² Π±Π°Π·Π΅ (ΡΠΎ Π±ΠΈΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ Π»ΠΈ ΡΠ°ΠΊΠΎΠΉ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅), ΡΠΎ Π½Π°ΠΌ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Β«ΠΠ»Π°-Π±Π»Π°-Π±Π»Π°, Π²Ρ Π·Π°ΡΠ»ΠΈ Π½Π° ΡΠ°ΠΉΡ, ΠΏΠΎΠ·Π΄ΡΠ°Π²Π»ΡΠ΅ΠΌ!Β», ΡΠΎΡΠΌΠ° Π²Ρ ΠΎΠ΄Π° ΠΏΡΠΎΠΏΠ°Π΄Π°Π΅Ρ, Π° Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Ρ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ° Β«ΠΠ°ΠΊΡΡΡΡΒ».
Π’Π°ΠΊΠΆΠ΅ Π½Π° ΡΠΎΡΠΌΠ΅ Π²Ρ ΠΎΠ΄Π° Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠ° Β«Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡΒ» Π΄Π»Ρ ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡ Π½Π΅ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ, Π½ΠΎ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΡΡ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ. ΠΡΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π° ΡΡΡ ΡΡΡΠ»ΠΊΡ ΠΌΡ ΠΏΠΎΠΏΠ°Π΄Π°Π΅ΠΌ ΡΠΆΠ΅ Π½Π° ΡΡΠ΅ΡΠΈΠΉ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. Π ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠ»Ρ Β«ΠΠΎΠ³ΠΈΠ½Β», Β«ΠΠ°ΡΠΎΠ»ΡΒ», Β«ΠΠΎΠ²ΡΠΎΡΠΈΡΠ΅ ΠΏΠ°ΡΠΎΠ»ΡΒ», Β«EmailΒ» ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° Β«ΠΠΒ», ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ²ΡΡΡΡΠΉ ΡΠ°ΠΉΠ» β ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π½ΠΎΡΠΈΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»Ρ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΠ°Π·Ρ ΠΠ°Π½Π½ΡΡ , ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ Π»ΠΈ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ.
Π‘ΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ²:
Π€ΠΎΡΠΌΠ° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ
ΠΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ HTML-ΡΠΎΡΠΌΡ Π² PHP-ΡΠΊΡΠΈΠΏΡ
ΠΠΎΠ»Ρ ΡΠΎΡΠΌΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΡΠ·ΡΠΊΠ° ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ HTML, Π½ΠΎ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΡΡΡ ΡΠΎΡΠΌΡ Π² PHP-ΡΠΊΡΠΈΠΏΡ, ΡΡΠΎΠ±Ρ Ρ Π½Π°Ρ Π±ΡΠ»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ php-ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ ΠΏΡΡΠΌΠΎ Π² ΡΡΠΎΠΉ ΡΠΎΡΠΌΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΎΡΠΌΡ Π·Π°ΠΊΠ»ΡΡΠΈΠΌ Π² php-ΡΠΊΡΠΈΠΏΡ, Π° Π²ΡΠ²Π΅Π΄Π΅ΠΌ Π΅Ρ Π½Π° ΡΠΊΡΠ°Π½Ρ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ php, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠΎΡΠΌΡ
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΡΠΌΠ° Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠ»Π΅ΠΉ ΡΠΎΡΠΌΡ ΡΠ²Π΅ΡΡΠ»ΠΈΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ Π² ΠΠ°Π·Π΅ ΠΠ°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ ΠΏΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΡΠΌΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΡΠΌΡ, ΡΠ²Π΅ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈΠ»ΠΈ Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° ΡΠ°ΠΉΡ. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π»Π΅Π³ΠΊΠΎ, Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ Π² ΡΠ΅Π³Π΅ form Π°ΡΡΠΈΠ±ΡΡ action, ΡΠΎ Π±ΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ (Π°Π΄ΡΠ΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΡ ΡΠΎΡΠΌΡ), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΡΠΌΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ
Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ° ΡΠΎΡΠΌΠ° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΠ°Π»Π°, ΡΠΎ Π΅ΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π»Π° Ρ ΠΠ°Π·ΠΎΠΉ ΠΠ°Π½Π½ΡΡ , ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ script1.php. ΠΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ ΠΏΡΠΎΠ²Π΅ΡΠΈΡ Π²Π²Π΅Π΄Π΅Π½Ρ Π»ΠΈ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΏΠΎΠ»Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ β Β«ΠΠΎΠ³ΠΈΠ½Β» ΠΈ Β«ΠΠ°ΡΠΎΠ»ΡΒ», Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ Π»ΠΈ Π½Π° ΡΠ°ΠΉΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ Π²Π²Π΅Π΄ΡΠ½Π½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ (ΡΠΎ Π±ΠΈΡΡ, Π΅ΡΡΡ Π»ΠΈ Π² ΠΠ ΡΠΆΠ΅ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ), ΠΈ Π΅ΡΠ»ΠΈ Π΅ΡΡΡ, Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π½Π° ΡΠ°ΠΉΡΠ΅ (Π΅ΡΠ»ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Π²Π²Π΅Π΄ΡΠ½Π½ΡΠ΅ Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π² ΠΠ). ΠΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅Ρ (Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Π²Π²Π΅Π΄ΡΠ½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ), Π²ΡΠ²Π΅ΡΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΡΠΌ Π²Ρ ΠΎΠ΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ, ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΡΠ΄Π°Π»ΡΠ΅ΠΌ Π»ΠΈΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠ±Π΅Π»Ρ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΠΌ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² html-ΡΡΡΠ½ΠΎΡΡΠΈ, ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ΅ΡΡΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° Π½ΡΠΆΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΡ ΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎΠ±Ρ Π½Π°ΡΠΈ ΡΠΊΡΠΈΠΏΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ Π΅Π³ΠΎ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠ³Π»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΠΠ, Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° MySQL (mysql.moidomen.com), Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ (moya_baza), Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ (moi_login) ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ (moi_parol). Π ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΠΈ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅ Ρ ΡΠΊΠ°Π·Π°Π»Π° ΠΏΡΠΈΠΌΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π²Ρ ΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠΊΠ°Π·Π°ΡΡ Π‘ΠΠΠ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π‘ΠΠΠΠ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΠΠ:
ΠΠ°Π»Π΅Π΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΡΡ ΠΈΠ· ΠΠ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ Π½Π° ΡΠ°ΠΉΡΠ΅ ΠΈΡ Π»ΠΎΠ³ΠΈΠ½Ρ. ΠΡΠ»ΠΈ Π΅ΡΡΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ ΡΠ°ΠΊΠΈΠΌ Π»ΠΎΠ³ΠΈΠ½ΠΎΠΌ, ΡΠ²Π΅ΡΡΠ΅ΠΌ ΠΏΠ°ΡΠΎΠ»ΠΈ Π²Π²Π΅Π΄ΡΠ½Π½ΡΠ΅ ΠΏΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠ»ΠΈ ΡΡΠΈ ΠΏΠ°ΡΠΎΠ»ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ, Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²ΡΠ²Π°Π΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡ Π½Π° ΡΠ°ΠΉΡΠ΅ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π° ΡΠΊΡΠ°Π½, ΡΡΠΎ ΠΎΠ½ Π²ΠΎΡΡΠ». Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²ΡΠ²Π°Π΅ΠΌ (ΠΎΠ½ ΠΎΡΡΠ°ΡΡΡΡ, ΠΊΠ°ΠΊ Π³ΠΎΡΡΡ) ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΡΠΎ Π»ΠΎΠ³ΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ Π½Π΅Π²Π΅ΡΠ½Ρ. ΠΠ΅ Π·Π°Π±ΡΠ²Π°Π΅ΠΌ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π·Π°ΡΠΈΡΡ ΠΏΠ°ΡΠΎΠ»Ρ md5();, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ ΠΏΠ°ΡΠΎΠ»Ρ Π² Ρ ΡΡ Π² Π²ΠΈΠ΄Π΅ 32-ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°. ΠΡΠΈΠΌΠ΅Ρ Π½ΠΈΠΆΠ΅:
ΠΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ°ΠΉΠ» script1.php Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
Π€ΠΎΡΠΌΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ
ΠΠ° ΡΡΡΠ°Π½ΠΈΡΠ΅ Ρ ΡΠΎΡΠΌΠΎΠΉ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ Π½Π΅Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π½ΠΎ ΠΆΠ΅Π»Π°ΡΡΠΈΡ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΡ Π½Π°ΠΌ ΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ. Π€ΠΎΡΠΌΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π° ΡΠΎΡΠΌΠ΅ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°Π·Π½ΠΈΡΠ° ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΡΡ ΡΠΎΡΠΌΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π² Π°ΡΡΠΈΠ±ΡΡΠ΅ ΡΠ΅Π³Π° form β action ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ script2.php. Π€ΠΎΡΠΌΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ registration.php Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΡΠΌΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ
ΠΠ°ΠΊ ΡΠΎΡΠΌΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π³ΠΎΡΠΎΠ²Π°, ΠΏΡΠΈΡΡΡΠΏΠΈΠΌ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠΎΡΠΌΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ. ΠΠ½ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΡΠΌΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ. Π Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΌ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ ΡΠΎΡΠΌ Π² ΠΏΠΎΠ»ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ. ΠΡΠΎΠ²ΠΎΠ΄ΠΈΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π»ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Π»ΠΈ ΠΏΠ°ΡΠΎΠ»ΠΈ Π² ΠΎΠ±ΠΎΠΈΡ ΠΏΠΎΠ»ΡΡ β Π² ΠΏΠΎΠ»Π΅ Β«ΠΠ°ΡΠΎΠ»ΡΒ» ΠΈ Β«ΠΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠΎΠ»ΡΒ». ΠΠ°ΡΠΎΠ»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ Π² Π₯ΠΠ¨, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΡ MD5 (); ΠΠ½Π° ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ Π²Π²Π΅Π΄ΡΠ½Π½ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ, ΡΠΎ Π΅ΡΡΡ ΠΊΠΎΠ΄ΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ Π² Ρ ΡΡ Π² Π²ΠΈΠ΄Π΅ 32-ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°. ΠΠ°ΠΊ ΠΈ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ ΠΏΠΎΠ»ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ β ΡΠ΄Π°Π»ΡΡΡ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΡΠ΄Π°Π»ΡΡΡ Π»ΠΈΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠ±Π΅Π»Ρ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² html-ΡΡΡΠ½ΠΎΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ°ΡΠ΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΌΡ ΡΠΆΠ΅ Π·Π½Π°Π΅ΠΌ ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ:
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ ΠΎΡΡΠ°Π»ΠΎΡΡ Π·Π°Π½Π΅ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅, Π²Π²Π΅Π΄ΡΠ½Π½ΡΠ΅ Π² ΠΏΠΎΠ»Ρ ΡΠΎΡΠΌΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π² ΡΠ°Π±Π»ΠΈΡΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ registr_users, ΠΎΠΏΠΎΠ²Π΅ΡΡΠΈΡΡ Π½ΠΎΠ²ΠΎΠΈΡΠΏΠ΅ΡΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΏΡΠΎΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² Π±ΡΠ°ΡΠ·Π΅Ρ ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ Π²ΠΎΠΉΡΠΈ Π½Π° ΡΠ°ΠΉΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅.
Π ΡΠ΅Π»ΠΎΠΌ Π²Π΅ΡΡ ΡΠ°ΠΉΠ»-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΡΠΌΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ script2.php Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΡΠΈΠΌΠ΅Ρ ΡΠΎΡΠΌΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ
ΠΡ Π²ΠΎΡ, Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΠΈ Π²ΡΡ. ΠΠ»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ β ΠΏΠΎΠΊΠ»Π°ΡΠ°ΡΡ Π·Π΄Π΅ΡΡ. Π’Π°ΠΌ Π²ΡΡ ΡΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΠΎΠ»ΡΠΊΠΎ Ρ Π΅ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»Π° ΡΠ°ΠΉΠ» css ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»Π° Π΅Π³ΠΎ.
HTTP-Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π² PHP
ΠΡΠΈΠΌΠ΅Ρ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΡΠΊΡΠΈΠΏΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ½ΡΠΆΠ΄Π°Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΡΡΠ°Π½ΠΈΡΡ:
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ Basic HTTP-Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
ΠΡΠΈΠΌΠ΅Ρ #2 ΠΡΠΈΠΌΠ΅Ρ Digest HTTP-Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° Digest HTTP-Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠ° ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΡΠΌΠΈ ΠΎΠ±ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΠΊ Β» RFC 2617.
die( ‘Π’Π΅ΠΊΡΡ, ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΆΠ°Π» ΠΊΠ½ΠΎΠΏΠΊΡ Cancel’ );
>
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΊΠ°ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ
ΠΡΠ΄ΡΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½Ρ ΠΏΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ². ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², ΡΠ»ΠΎΠ²ΠΎ «Basic» Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ Π±ΡΠΊΠ²Ρ «B», ΡΠ΅Π³ΠΈΠΎΠ½ (realm) Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²Π·ΡΡ Π² Π΄Π²ΠΎΠΉΠ½ΡΠ΅ (Π½Π΅ ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΠ΅!) ΠΊΠ°Π²ΡΡΠΊΠΈ, ΠΈ ΡΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΠ±Π΅Π» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄Ρ 401 Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ HTTP/1.0 401. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°Π·Π΄Π΅Π»ΡΡΡΡΡ Π·Π°ΠΏΡΡΡΠΌΠΈ, ΠΊΠ°ΠΊ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Digest Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π²ΡΡΠ΅.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ½Π°Π±Π»ΡΠ΄Π°ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Internet Explorer. ΠΠ½ ΠΎΡΠ΅Π½Ρ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΠ΅Π»Π΅Π½ ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ². Π’ΡΡΠΊ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° WWW-Authenticate ΠΏΠ΅ΡΠ΅Π΄ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ ΡΡΠ°ΡΡΡΠ° HTTP/1.0 401 ΠΏΠΎΠΊΠ° ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ Π½Π΅Π³ΠΎ.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΊΠ°ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
PHP ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ AuthType Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²Π½Π΅ΡΠ½ΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈΠ»ΠΈ Π½Π΅Ρ.
Π‘Π»Π΅Π΄ΡΠ΅Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π²ΡΠ΅ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΡ ΠΈΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ ΠΊ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌ, ΡΡΠ΅Π±ΡΡΡΠΈΠΌ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ, ΠΊΠ΅ΠΌ-Π»ΠΈΠ±ΠΎ, ΠΊΡΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ Π±Π΅Π· Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π½Π° ΡΠΎΠΌ ΠΆΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ΅.
Π Netscape Navigator ΠΈ Internet Explorer ΠΎΡΠΈΡΠ°ΡΡ ΠΊΠ΅Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π° Π΄Π»Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΠΎΠ½Π° (realm) ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΡΠ°ΡΡΡΠ° 401. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΡ ΠΎΠ΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠΎ Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ «ΠΡΡ ΠΎΠ΄».
ΠΡΠΈΠΌΠ΅Ρ #3 ΠΡΠΈΠΌΠ΅Ρ HTTP-Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ Π²Π²ΠΎΠ΄ΠΎΠΌ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ°ΡΡ Π»ΠΎΠ³ΠΈΠ½/ΠΏΠ°ΡΠΎΠ»Ρ
function authenticate () <
header ( ‘WWW-Authenticate: Basic realm=»Test Authentication System»‘ );
header ( ‘HTTP/1.0 401 Unauthorized’ );
echo «ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π²Π΅ΡΡΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΡΡΡΡΡ \n» ;
exit;
>
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ HTTP-Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π² IIS ΡΠ΅ΡΠ²Π΅ΡΠ΅ Ρ CGI Π²Π΅ΡΡΠΈΠ΅ΠΉ PHP, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ IIS ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ » Directory Security «. Π©ΡΠ»ΠΊΠ½ΠΈΡΠ΅ Π½Π° Π½Π°Π΄ΠΏΠΈΡΠΈ » Edit » ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΎΠΏΡΠΈΡ » Anonymous Access «, Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΡΠ°ΡΡΡΡ Π½Π΅ΠΎΡΠΌΠ΅ΡΠ΅Π½Π½ΡΠΌΠΈ.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΊΠ°ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ IIS:
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ HTTP-Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π»Π° Π² IIS, Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ PHP-ΠΎΠΏΡΠΈΡ cgi.rfc2616_headers Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ 0 (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ).
User Contributed Notes 46 notes
Workaround for missing Authorization header under CGI/FastCGI Apache:
This is the simplest form I found to do a Basic authorization with retries.
// If arrives here, is a valid user.
echo «
Congratulation, you are into the system.
In case of CGI/FastCGI you would hot be able to access PHP_AUTH* info because CGI protocol does not declare such variables (that is why their names start from PHP) and server would not pass them to the interpreter. In CGI server should authenticate user itself and pass REMOTE_USER to CGI script after it.
So you need to «fetch» request headers and pass them to your script somehow.
In apache you can do it via environment variables if mod_env is installed.
SetEnvIfNoCase ^Authorization$ «(.+)» PHP_AUTH_DIGEST_RAW=$1
Do not forget to strip auth type («Digest» in my case) from your env variable because PHP_AUTH_DIGEST does not have it.
If mod_env is not installed you probably have mod_rewrite (everyone has it because of «human readable URLs»).
You can fetch header and pass it as GET parameter using rewrite rule:
RewriteRule ^.*$ site.php?PHP_AUTH_DIGEST_RAW=%
—
If you use ZF you probably use Zend_Auth_Adapter_Http to auth user.
[NOTE BY danbrown AT php DOT net: The following note was added by «Anonymous» on 01-APR-2010 (though we presume it’s not an April Fool’s Day joke).]
this logout method does not work 100% anymore, because of another bulls**t from M$:
http://support.microsoft.com/kb/834489
Be careful using http digest authentication (see above, example 34.2) if you have to use the ‘setlocale’ function *before* validating response with the ‘http_digest_parse’ function, because there’s a conflict with \w in the pattern of ‘preg_match_all’ function :
In fact, as \w is supposed to be any letter or digit or the underscore character, you must not forgot that this may vary depending on your locale configuration (eg. it accepts accented letters in french).
Due to this different pattern interpretation by the ‘preg_match_all’ function, the ‘http_digest_parse’ function will always return a false result if you have modified your locale (I mean if your locale accepts some extended characters, see http://fr.php.net/manual/en/reference.pcre.pattern.syntax.php for further information).
IMHO, I suggest you not to use setlocale before having your authentication completed.
PS : Here’s a non-compatible setlocale declaration.
setlocale ( LC_ALL, ‘fr_FR’, ‘fr’, ‘FR’, ‘french’, ‘fra’, ‘france’, ‘French’, ‘fr_FR.ISO8859-1’ ) ;
I came up with another approach to work around the problem of browsers caching WWW authentication credentials and creating logout problems. While most browsers have some kind of way to wipe this information, I prefer having my website to take care of the task instead of relying on the user’s sanity.
Even with Lalit’s method of creating a random realm name, it was still possible to get back into the protected area using the back button in Firefox, so that didn’t work. Here’s my solution:
Since browsers attach the credentials to specific URLs, use virtual paths where a component of the path is actually a PHP script, and everything following it is part of the URI, such as:
By choosing a different number for the last component of the URL, browsers can be tricked into thinking that they are dealing with a completely different website, and thus prompting the user for credentials again.
Note that using a random, unrestricted number will still allow the user to hit the back button to get back into the page. You should keep track of this number in a server-side file or database and regenerate it upon each successful login, so that the last number(s) become invalid. Using an invalid number might result in a 403 response or, depending on how you feel that day, a 302 to a nasty website.
Care should be taken when linking from the page generated in this case, since relative links will be relative to the virtual and non-existant directory rather than the true script directory.
you have logged!
Note that Microsoft has released a ‘security update’ which disables the use of username:password@host in http urls.
The methods described above which rely on this will no longer work in Microsoft browsers, sadly.
You can re-enable this functionality as described at
but your users will probably be unwilling to do this.
A simpler approach on the post of:
bernard dot paques at bigfoot dot com
24-Sep-2004 01:42
This is another «patch» to the PHP_AUTH_USER and PHP_AUTH_PW server variables problem running PHP as a CGI.
It’s a variation of the script by Bernard Paques.
Thanks to him for that snippet.
Some servers won’t support the HTTP1.0 specification and will give an error 500 (for instance). This happened with a server where I uploaded an authentication script.
If it happens, you can try the HTTP1.1 header syntax :
( «WWW-Authenticate: Basic realm=\»My Realm\»» );
header ( ‘status: 401 Unauthorized’ );
?>
To force a logout with Basic Auth, you can change the Realm out from under them to a different Realm.
This forces a new set of credentials for a new «Realm» on your server.
You just need to track the Realm name with the user/pass and change it around to something new/random as they log in and out.
I believe that this is the only 100% guaranteed way to get a logout in HTTP Basic Auth, and if it were part of the docs a whole lot of BAD user-contributed comments here could be deleted.
= ‘test_login’ ;
$pass = ‘test_pass’ ;
Back to the autherisation in CGI mode. this is the full working example:
# In the beginning the script checking the authorization place the code:
if ( count($userpass) == 2 ) <
#this part work not for all.
#print_r($userpass);die; #
I used Louis example (03-Jun-2006) and it works well for me (thanks).
However, I added some lines, to make sure, the user does only get the Authentification-Window a few times:
// In the beginning, when the realm ist defined:
$_SESSION [ ‘CountTrials’ ] = 1 ;
?>
And then when it comes to check the authentification (ZEND-Tutorial):
You are authorized!
‘ ;
>
?>
noentry.php is slightely different from comeagain.php.
To anybody who tried the digest example above and didn’t get it to work.
For me the problem seemed to be the deprecated use of ‘\’ (backslash) in the regex instead of the ‘$’ (Dollar) to indicate a backreference. Also the results have to be trimmed off the remaining double and single quotes.
Here’s the working example:
// function to parse the http auth header
function http_digest_parse($txt)
<
// protect against missing data
$needed_parts = array(‘nonce’=>1, ‘nc’=>1, ‘cnonce’=>1, ‘qop’=>1, ‘username’=>1, ‘uri’=>1, ‘response’=>1);
$data = array();
Probably there’s a more sophisticated way to trim the quotes within the regex, but I couldn’t be bothered π
Then you need small piece of php code to parse this line and then everything will work like with mod_php:
I spent the better part of a day getting this to work right. I had a very hard time thinking through what the browser does when it encounters an authentication request: seems to me that it tries to get the password, then reloads the page. so the HTML doesn’t get run. At least, this was the case with IE, I haven’t tested it with anything else.
// «standard» authentication code here, from the ZEND tutorial above.