SlideShare a Scribd company logo
1 of 25
Session-той ажиллах –
Attacking Session
Лекц №7
Бэлтгэсэн Ц.Амарбат (amarbat9@yahoo.com)
http://1234.mn/cd
Мэдээллийн нууцлал хамгаалалт
2
Агуулга
 Session гэж юу вэ?
 Session хэрэглээ
 PHP ба session
 Жишээ
 Онлайн зочдыг харуулах жишээ
 Сайтад зочлогсдын тоог харуулах жишээ
 Логин хийх
 Бие дааж хийх зүйлс
Session хэрэглээ
 Session гэж юу вэ?
 Клиентүүдийг хооронд нь ялгахад зориулагдсан сэрвэрээс клиент болгон үүсгэж өгдөг
дахин давхарддаггүй нэг төрлийн өгөгдөл юм.
 Клиент нь сэрвэрээс өгсөн session token-г сэрвэр рүү хүсэлт илгээх бүртээ явуулж
байдаг.
 Session хэрэглээ
 Хэрэглэгчийн логинийг хийх
 Логин хийсний дараа өөр session token өгдөг.
 Сайтын зочдыг хянах
 Одоо онлайн байгаа зочид
 Нийт сайтад зочлогчдын тоог үзүүлэх
 Логин хийдэггүй сайтад бол тухайн хэрэглэгчийн өгөгдлийг хадгалах
 Сагсандаа хийсэн бараануудыг нь хадгалах (дараа орж ирэхэд нь сагсанд нь хийсэн бараанууд нь байж байх)
 Хуудас хооронд мэдээлэл дамжуулахад
3
PHP Session
 PHP дээр session-г үүсгэхдээ дараах функцийг ашиглана :
 session_start() – Энэ функц нь дахин давхардахгүй session token-г үүсгэн клиент рүү
илгээхэд бэлтгэнэ.
 Session ашиглах
 $_SESSION массивыг ашиглана.
 $_SESSION[‘user’] = ‘amaraa’;
 session_id() : Энэ функц нь үүссэн session token-г өгнө.
 session_regenerate_id(boolean) : Энэ функц нь session token-г шинээр үүсгэнэ. Хэрэв энэ
функц рүү true гэж дамжуулбал өмнө үүссэн session token-г устгана (уг ID-г ашиглах
боломжгүй болгоно).
 Session-г устгах
 session_destroy() : Session-г бүхэлд нь устгана.
 session_unset() : Session дотор байгаа бүх өгөгдлүүдийг устгана.
4
PHP Session
 Анхаарах зүйл :
 session_start(), session_regenerate_id() функцүүдийг дуудахын өмнө ямар нэг зүйл
хэвлэсэн байж болохгүй. Хэвлэсэн бол алдаа гардаг.
 Жишээ нь дараах кодууд алдаа өгнө :
5
Зөв хувилбар нь :
PHP Session
 Жишээ №1 :
 Session үүсгэх
 Үүсгэгдсэн session token-г харах
 Session token-г дахин шинээр үүсгэх (логин хийх үед хэрэглэнэ)
 Хуучин болон шинэ token-уудыг харах
6
PHP Session
 Жишээ № 2:
 Session үүсгэх
 Session-д өгөгдөл хадгалах
 Уг өгөгдөлд өөр хуудаснаас хандах
7
PHP Session
8
Сайтын зочдын хяналт
 Сайтад одоо онлайн байгаа хэрэглэгчдийг үзүүлэх
 Сэрвэр рүү клиент хандах бүрт түүний session token-г базд хадгална.
 Хэрэв уг токен хадгалаастай байвал мэдээж хадгалахгүй.
 Клиент log out хийвэл түүнийг уг базаас арилгана.
 Хэрэв клиент 30 минутын дотор нэг ч хүсэлт хийхгүй бол бас базаас устгана.
 Баз дотор одоо байгаа token-ууд нь одоо сайтад байгаа хэрэглэгчдийн тоо болж чадна.
 Базын бүтэц :
9
Сайтын зочдын хяналт
 Өгөгдлийн сантай ажиллах тул өгөгдлийн сангаас өгөгдөл авах класс
бидэнд хэрэгтэй :
 Энэ классыг бид “Интернэт програмчлал - I” хичээлээр үзсэн.
 database_class.php гэсэн нэртэй файл байгаа.
 Энэ классыг бид бүх хуудсандаа холбох тул header.php файл үүсгэе:
10
Сайтын зочдын хяналт
 Өгөгдлийн сантай ажиллах тул өгөгдлийн сангаас өгөгдөл авах класс
бидэнд хэрэгтэй :
 Энэ классыг бид “Интернэт програмчлал - I” хичээлээр үзсэн.
 database_class.php гэсэн нэртэй файл байгаа.
 Энэ классыг бид бүх хуудсандаа холбох тул header.php файл үүсгэе.
 Сайтын хуудас бүр эхлэхдээ энэ хуудсыг дуудна.
 Энэ хуудас ажиллах бүрт
 session-г эхлүүлнэ.
 session token-г нь аваад зочдын бүртгэлд байгаа эсэхийг шалгана
 Байхгүй байвал шинээр нэмнэ
 Байвал уг токенд харгалзах огноог нь одоогийнхоор өөрчилнө.
 Хугацаа нь хэтэрсэн токенууд базд байгаа эсэхийг шалгана.
 Байвал тэдгээрийг базаас арилгана.
 Нийт холбогдсон зочдын тоог хувьсагчид хадгална.
11
Сайтын зочдын хяналт
 Footer.php файл үүсгэн тэнд онлайн зочдын тоог харуулна.
 Header.php дотор байгаа зочдын тоог хэвлэн үзүүлнэ.
 Бусад хуудаст header.php, footer.php файлуудыг холбоно.
 Header.php :
12
Сайтын зочдын хяналт
13
Сайтын зочдын хяналт
14
Сайтын зочдын хяналт
 Сайтын нийт зочлогсдын тоог үзүүлэх
 Санаа :
 Хэрэглэгч дөнгөж сайтад орж ирэхэд бид online_visitors хүснэгтэд түүнийг нэмж байгаа.
 Ингэж нэмэхийн хажуугаар өөр нэг хүснэгтэд байгаа тоог нэмэгдүүлэхэд хангалттай.
 Уг хүснэгтийн бүтэц нь :
15
Сайтын зочдын хяналт
 Header.php файлд оруулах өөрчлөлт :
16
Сайтын зочдын хяналт
 footer.php файлд оруулах өөрчлөлт :
17
Логин хуудас хийх
 Өмнөх жишээг сайжруулан логин хийдэг болгоё :
 Login.php
 Логин хийх интерфэйсийг үзүүлнэ.
 Логин нэр болон нууц үгийн урт нь 8 тэмдэгтээс хэтрэхгүй гэсэн шаардлага тавина.
 Login_check.php
 Хэрэглэгч нэр нууц үгээ оруулахад дуудагдах файл
 Хэрэглэгчийн мэдээллийг шалгаад зөв бол
 Шинээр session үүсгэнэ
 welcome.php рүү шилжүүлнэ
 Мэдээлэл буруу бол login.php рүү алдааны мэдээлэл дамжуулж дуудна.
 Welcome.php
 Log out хийх боломж тавина.
 Log_out.php
 Session-г устган login.php хуудсыг дуудна.
18
Логин хуудас хийх
 Хэрэглэгчдийг users гэсэн хүснэгтэд хадгалъя :
 Өгөгдөл нь :
19
Логин хуудас хийх
 Login.php
20
Логин хуудас хийх
 Login.php
21
 Login_check.php
22
 Welcome.php
23
 logout.php
24
Логин хуудас хийх
 Дээрх жишээнүүдийг ажиллуул
 Нэмж хийх зүйлс :
 Login.php :
 Хэрэглэгч шинээр бүртгэх боломжийг хийж өг
 Хэрэглэгчийг сануулдаг функцийг хийж өг (cookie хэрэглэнэ)
 Нэр, нууц үгээ мартвал сануулдаг зүйл хийж өг.
 Админ логин хийж орвол бүх хэрэглэгчдийг бүх мэдээлэлтэйгээр нь үзүүлж дурын хэрэглэгчийн нууц үгийг
сольдог болго.
 Welcome.php :
 Нууц үгээ солих функц тавьж өг
 Хэрэглэгчийн нэрээ солих функц тавьж өг
 Бие биеийнхээ хийсэн сайт руу нь хандаж үз.
 Төрөл бүрээр хакердах оролдлогууд хийж үз.
 Бүх хэрэглэгчдийн мэдээллийг олбол бүрэн хакердлаа гэж үзнэ.
 Хэрхэн хакердсан болон, хэрхэн түүнээс хамгаалсан талаар word дээр бичиж хураалгана.
25

More Related Content

Similar to 7 session-тай ажиллах 1 хэсэг

Labornet work программын гарын авлага 2
Labornet work программын гарын авлага 2Labornet work программын гарын авлага 2
Labornet work программын гарын авлага 2halamj
 
Андройд үйлдлийн системийн аппликейшний суурь ухагдахуунууд
Андройд үйлдлийн системийн аппликейшний суурь ухагдахуунуудАндройд үйлдлийн системийн аппликейшний суурь ухагдахуунууд
Андройд үйлдлийн системийн аппликейшний суурь ухагдахуунуудBatjargal Batbold
 

Similar to 7 session-тай ажиллах 1 хэсэг (8)

Vpii bie daalt
Vpii bie daaltVpii bie daalt
Vpii bie daalt
 
Vpii bie daalt
Vpii bie daaltVpii bie daalt
Vpii bie daalt
 
Vpii bie daalt
Vpii bie daaltVpii bie daalt
Vpii bie daalt
 
Hicheel1(90)minit
Hicheel1(90)minitHicheel1(90)minit
Hicheel1(90)minit
 
Labornet work программын гарын авлага 2
Labornet work программын гарын авлага 2Labornet work программын гарын авлага 2
Labornet work программын гарын авлага 2
 
Lekts 5
Lekts  5Lekts  5
Lekts 5
 
Андройд үйлдлийн системийн аппликейшний суурь ухагдахуунууд
Андройд үйлдлийн системийн аппликейшний суурь ухагдахуунуудАндройд үйлдлийн системийн аппликейшний суурь ухагдахуунууд
Андройд үйлдлийн системийн аппликейшний суурь ухагдахуунууд
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 

7 session-тай ажиллах 1 хэсэг

  • 1. Session-той ажиллах – Attacking Session Лекц №7 Бэлтгэсэн Ц.Амарбат (amarbat9@yahoo.com) http://1234.mn/cd Мэдээллийн нууцлал хамгаалалт
  • 2. 2 Агуулга  Session гэж юу вэ?  Session хэрэглээ  PHP ба session  Жишээ  Онлайн зочдыг харуулах жишээ  Сайтад зочлогсдын тоог харуулах жишээ  Логин хийх  Бие дааж хийх зүйлс
  • 3. Session хэрэглээ  Session гэж юу вэ?  Клиентүүдийг хооронд нь ялгахад зориулагдсан сэрвэрээс клиент болгон үүсгэж өгдөг дахин давхарддаггүй нэг төрлийн өгөгдөл юм.  Клиент нь сэрвэрээс өгсөн session token-г сэрвэр рүү хүсэлт илгээх бүртээ явуулж байдаг.  Session хэрэглээ  Хэрэглэгчийн логинийг хийх  Логин хийсний дараа өөр session token өгдөг.  Сайтын зочдыг хянах  Одоо онлайн байгаа зочид  Нийт сайтад зочлогчдын тоог үзүүлэх  Логин хийдэггүй сайтад бол тухайн хэрэглэгчийн өгөгдлийг хадгалах  Сагсандаа хийсэн бараануудыг нь хадгалах (дараа орж ирэхэд нь сагсанд нь хийсэн бараанууд нь байж байх)  Хуудас хооронд мэдээлэл дамжуулахад 3
  • 4. PHP Session  PHP дээр session-г үүсгэхдээ дараах функцийг ашиглана :  session_start() – Энэ функц нь дахин давхардахгүй session token-г үүсгэн клиент рүү илгээхэд бэлтгэнэ.  Session ашиглах  $_SESSION массивыг ашиглана.  $_SESSION[‘user’] = ‘amaraa’;  session_id() : Энэ функц нь үүссэн session token-г өгнө.  session_regenerate_id(boolean) : Энэ функц нь session token-г шинээр үүсгэнэ. Хэрэв энэ функц рүү true гэж дамжуулбал өмнө үүссэн session token-г устгана (уг ID-г ашиглах боломжгүй болгоно).  Session-г устгах  session_destroy() : Session-г бүхэлд нь устгана.  session_unset() : Session дотор байгаа бүх өгөгдлүүдийг устгана. 4
  • 5. PHP Session  Анхаарах зүйл :  session_start(), session_regenerate_id() функцүүдийг дуудахын өмнө ямар нэг зүйл хэвлэсэн байж болохгүй. Хэвлэсэн бол алдаа гардаг.  Жишээ нь дараах кодууд алдаа өгнө : 5 Зөв хувилбар нь :
  • 6. PHP Session  Жишээ №1 :  Session үүсгэх  Үүсгэгдсэн session token-г харах  Session token-г дахин шинээр үүсгэх (логин хийх үед хэрэглэнэ)  Хуучин болон шинэ token-уудыг харах 6
  • 7. PHP Session  Жишээ № 2:  Session үүсгэх  Session-д өгөгдөл хадгалах  Уг өгөгдөлд өөр хуудаснаас хандах 7
  • 9. Сайтын зочдын хяналт  Сайтад одоо онлайн байгаа хэрэглэгчдийг үзүүлэх  Сэрвэр рүү клиент хандах бүрт түүний session token-г базд хадгална.  Хэрэв уг токен хадгалаастай байвал мэдээж хадгалахгүй.  Клиент log out хийвэл түүнийг уг базаас арилгана.  Хэрэв клиент 30 минутын дотор нэг ч хүсэлт хийхгүй бол бас базаас устгана.  Баз дотор одоо байгаа token-ууд нь одоо сайтад байгаа хэрэглэгчдийн тоо болж чадна.  Базын бүтэц : 9
  • 10. Сайтын зочдын хяналт  Өгөгдлийн сантай ажиллах тул өгөгдлийн сангаас өгөгдөл авах класс бидэнд хэрэгтэй :  Энэ классыг бид “Интернэт програмчлал - I” хичээлээр үзсэн.  database_class.php гэсэн нэртэй файл байгаа.  Энэ классыг бид бүх хуудсандаа холбох тул header.php файл үүсгэе: 10
  • 11. Сайтын зочдын хяналт  Өгөгдлийн сантай ажиллах тул өгөгдлийн сангаас өгөгдөл авах класс бидэнд хэрэгтэй :  Энэ классыг бид “Интернэт програмчлал - I” хичээлээр үзсэн.  database_class.php гэсэн нэртэй файл байгаа.  Энэ классыг бид бүх хуудсандаа холбох тул header.php файл үүсгэе.  Сайтын хуудас бүр эхлэхдээ энэ хуудсыг дуудна.  Энэ хуудас ажиллах бүрт  session-г эхлүүлнэ.  session token-г нь аваад зочдын бүртгэлд байгаа эсэхийг шалгана  Байхгүй байвал шинээр нэмнэ  Байвал уг токенд харгалзах огноог нь одоогийнхоор өөрчилнө.  Хугацаа нь хэтэрсэн токенууд базд байгаа эсэхийг шалгана.  Байвал тэдгээрийг базаас арилгана.  Нийт холбогдсон зочдын тоог хувьсагчид хадгална. 11
  • 12. Сайтын зочдын хяналт  Footer.php файл үүсгэн тэнд онлайн зочдын тоог харуулна.  Header.php дотор байгаа зочдын тоог хэвлэн үзүүлнэ.  Бусад хуудаст header.php, footer.php файлуудыг холбоно.  Header.php : 12
  • 15. Сайтын зочдын хяналт  Сайтын нийт зочлогсдын тоог үзүүлэх  Санаа :  Хэрэглэгч дөнгөж сайтад орж ирэхэд бид online_visitors хүснэгтэд түүнийг нэмж байгаа.  Ингэж нэмэхийн хажуугаар өөр нэг хүснэгтэд байгаа тоог нэмэгдүүлэхэд хангалттай.  Уг хүснэгтийн бүтэц нь : 15
  • 16. Сайтын зочдын хяналт  Header.php файлд оруулах өөрчлөлт : 16
  • 17. Сайтын зочдын хяналт  footer.php файлд оруулах өөрчлөлт : 17
  • 18. Логин хуудас хийх  Өмнөх жишээг сайжруулан логин хийдэг болгоё :  Login.php  Логин хийх интерфэйсийг үзүүлнэ.  Логин нэр болон нууц үгийн урт нь 8 тэмдэгтээс хэтрэхгүй гэсэн шаардлага тавина.  Login_check.php  Хэрэглэгч нэр нууц үгээ оруулахад дуудагдах файл  Хэрэглэгчийн мэдээллийг шалгаад зөв бол  Шинээр session үүсгэнэ  welcome.php рүү шилжүүлнэ  Мэдээлэл буруу бол login.php рүү алдааны мэдээлэл дамжуулж дуудна.  Welcome.php  Log out хийх боломж тавина.  Log_out.php  Session-г устган login.php хуудсыг дуудна. 18
  • 19. Логин хуудас хийх  Хэрэглэгчдийг users гэсэн хүснэгтэд хадгалъя :  Өгөгдөл нь : 19
  • 25. Логин хуудас хийх  Дээрх жишээнүүдийг ажиллуул  Нэмж хийх зүйлс :  Login.php :  Хэрэглэгч шинээр бүртгэх боломжийг хийж өг  Хэрэглэгчийг сануулдаг функцийг хийж өг (cookie хэрэглэнэ)  Нэр, нууц үгээ мартвал сануулдаг зүйл хийж өг.  Админ логин хийж орвол бүх хэрэглэгчдийг бүх мэдээлэлтэйгээр нь үзүүлж дурын хэрэглэгчийн нууц үгийг сольдог болго.  Welcome.php :  Нууц үгээ солих функц тавьж өг  Хэрэглэгчийн нэрээ солих функц тавьж өг  Бие биеийнхээ хийсэн сайт руу нь хандаж үз.  Төрөл бүрээр хакердах оролдлогууд хийж үз.  Бүх хэрэглэгчдийн мэдээллийг олбол бүрэн хакердлаа гэж үзнэ.  Хэрхэн хакердсан болон, хэрхэн түүнээс хамгаалсан талаар word дээр бичиж хураалгана. 25