Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диплом.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
450.69 Кб
Скачать

Қoлдaнылғaн әдeбиeттep тiзiмi

  1. Aяжaнoв Қ.C., Eceнoвa A.C. Aқпapaттық қayiпciздiк жәнe aқпapaтты қopғay: Oқyлық. Aлмaты: ЖШC PCПБК «Дәyip», 2011.- 376 бeт7

  2. Әбдiқaлықoв.Қ.Ә.Кpиптoгpaфияның нeгiздepi: Oқyлық. Aлмaты.2012 – 184 бeт7

  3. Сағындықов К.М., Амангелді Н, «РНР оқулығы» - Алматы: Эпиграф, 2016ж. – 414б

  4. Анин Б. Защита компьютерной информации. БХВ-Петербург, 2003.

  5. Девянин П. Н. Модели безопасности компьютерных систем: Учеб. пособие для студ. высш. учеб. заведений / - М.: «Академия», 2005. - 144 с. |

  6. Емелин П.В. Информационная безопасность и защита информации. Учебно-практическое пособие для дистанционного обучения. -Караганда: КЭУ, 2007.

  7. Завгородний В.И. Комплексная защита в компьютерных системах: Учебное пособие. - М.: Логос; 2001. - 264 с.

  8. Куприянов А. И. Основы защиты информации : учеб, пособие для стуц. высш. учеб, заведений / Куприянов А.И, Сахаров А.В, Шевцов В. А.- М.: «Академия», 2006. - 256 с.

  1. Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в компьютерных системах и сетях / Под ред. В.Ф. Шаньгина.-2-е изд., пере- раб. и доп.-М.: «Радио и связь», 2001.-376 с.: ил.

  2. Степанов Е.А., Корнеев И.К. Информационная безопасность и защи- та информации: Учеб. пособие. - М.: «ИНФРА-М», 2001. - 304 с.

  3. Ярочкин В.И. Информационная безопасность: Учебник для студен- тов вузов. - М.: Академический Проект; Гаудеамус, 2 -е изд.- 2004. - 544 с.

  4. Девянин П. Н. Модели безопасности компьютерных систем: Учеб. пособие для студ. высш. учеб. заведений / - М.: «Академия», 2005. - 144 с. |

  5. https://kk.wikipedia.org/wiki/PHP-%D0%B1%D0%B0%D2%93%D0%B4%D0%B0%D1%80%D0%BB%D0%B0%D0%BC%D0%B0%D0%BB%D0%B0%D1%83_%D1%82%D1%96%D0%BB%D1%96

  6. https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F

15.Шаньгин В. Ф. Ш20 Информационная безопасность компьютерных систем и сетей: учеб. пособие. — М.: ИД «ФОРУМ»: ИНФРА-М, 2011. — 416 с.: ил. — (Профессиональное образование).

16. Асамбаев А.Ж. Криптография негіздері. Оқу құралы. – Павлодар, 2012. – 173 бет.

17. http://www.ruview.ru/downloads/netsecurity.pdf

Қосымша

<!DOCTYPE html>

02

<html>

03

<head>

04

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

05

<title>Делаем AJAX веб чат с использованием PHP, MySQL и jQuery | Демонстрация для сайта RUSELLER.COM</title>

06

 

07

<link rel="stylesheet" type="text/css" href="js/jScrollPane/jScrollPane.css" />

08

<link rel="stylesheet" type="text/css" href="css/page.css" />

09

<link rel="stylesheet" type="text/css" href="css/chat.css" />

10

 

11

</head>

12

 

13

<body>

14

 

15

<div id="chatContainer">

16

 

17

    <div id="chatTopBar" class="rounded"></div>

18

    <div id="chatLineHolder"></div>

19

     

20

    <div id="chatUsers" class="rounded"></div>

21

    <div id="chatBottomBar" class="rounded">

22

        <div class="tip"></div>

23

         

24

        <form id="loginForm" method="post" action="">

25

            <input id="name" name="name" class="rounded" maxlength="16" />

26

            <input id="email" name="email" class="rounded" />

27

            <input type="submit" class="blueButton" value="Войти" />

28

        </form>

29

         

30

        <form id="submitForm" method="post" action="">

31

            <input id="chatText" name="chatText" class="rounded" maxlength="255" />

32

            <input type="submit" class="blueButton" value="Отправить" />

33

        </form>

34

         

35

    </div>

36

     

37

</div>

38

 

39

<div id="footer">

40

    <div class="tri"></div>

41

    <h1>Делаем AJAX веб чат с использованием PHP и jQuery</h1>

42

</div>

43

 

44

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

45

<script src="js/jScrollPane/jquery.mousewheel.js"></script>

46

<script src="js/jScrollPane/jScrollPane.min.js"></script>

47

<script src="js/script.js"></script>

48

</body>

49

</html>

Ajax.php

/* Конфигурация базы данных. Добавьте свои данные */

02

 

03

$dbOptions = array(

04

    'db_host' => '',

05

    'db_user' => '',

06

    'db_pass' => '',

07

    'db_name' => ''

08

);

09

 

10

/* Конец секции конфигурации базы данных */

11

 

12

error_reporting(E_ALL ^ E_NOTICE);

13

 

14

require "classes/DB.class.php";

15

require "classes/Chat.class.php";

16

require "classes/ChatBase.class.php";

17

require "classes/ChatLine.class.php";

18

require "classes/ChatUser.class.php";

19

 

20

session_name('webchat');

21

session_start();

22

 

23

if(get_magic_quotes_gpc()){

24

     

25

    // Удаляем лишние слэши

26

    array_walk_recursive($_GET,create_function('&$v,$k','$v = stripslashes($v);'));

27

    array_walk_recursive($_POST,create_function('&$v,$k','$v = stripslashes($v);'));

28

}

29

 

30

try{

31

     

32

    // Соединение с базой данных

33

    DB::init($dbOptions);

34

     

35

    $response = array();

36

     

37

    // Обработка поддерживаемых действий:

38

     

39

    switch($_GET['action']){

40

         

41

        case 'login':

42

            $response = Chat::login($_POST['name'],$_POST['email']);

43

        break;

44

         

45

        case 'checkLogged':

46

            $response = Chat::checkLogged();

47

        break;

48

         

49

        case 'logout':

50

            $response = Chat::logout();

51

        break;

52

         

53

        case 'submitChat':

54

            $response = Chat::submitChat($_POST['chatText']);

55

        break;

56

         

57

        case 'getUsers':

58

            $response = Chat::getUsers();

59

        break;

60

         

61

        case 'getChats':

62

            $response = Chat::getChats($_GET['lastID']);

63

        break;

64

         

65

        default:

66

            throw new Exception('Wrong action');

67

    }

68

     

69

    echo json_encode($response);

70

}

71

catch(Exception $e){

72

    die(json_encode(array('error' => $e->getMessage())));

73

}

DB.class.php

01

class DB {

02

    private static $instance;

03

    private $MySQLi;

04

     

05

    private function __construct(array $dbOptions){

06

 

07

        $this->MySQLi = @ new mysqli(    $dbOptions['db_host'],

08

                        $dbOptions['db_user'],

09

                        $dbOptions['db_pass'],

10

                        $dbOptions['db_name'] );

11

 

12

        if (mysqli_connect_errno()) {

13

            throw new Exception('Ошибка базы данных.');

14

        }

15

 

16

        $this->MySQLi->set_charset("utf8");

17

    }

18

     

19

    public static function init(array $dbOptions){

20

        if(self::$instance instanceof self){

21

            return false;

22

        }

23

         

24

        self::$instance = new self($dbOptions);

25

    }

26

     

27

    public static function getMySQLiObject(){

28

        return self::$instance->MySQLi;

29

    }

30

     

31

    public static function query($q){

32

        return self::$instance->MySQLi->query($q);

33

    }

34

     

35

    public static function esc($str){

36

        return self::$instance->MySQLi->real_escape_string(htmlspecialchars($str));

37

    }

38

}

ChatBase.class.php

01

/* Базовый класс, который используется классами ChatLine и ChatUser */

02

 

03

class ChatBase{

04

 

05

    // Данный конструктор используется всеми класса чата:

06

 

07

    public function __construct(array $options){

08

         

09

        foreach($options as $k=>$v){

10

            if(isset($this->$k)){

11

                $this->$k = $v;

12

            }

13

        }

14

    }

15

}

ChatLine.class.php

01

/* Строка чата */

02

 

03

class ChatLine extends ChatBase{

04

     

05

    protected $text = '', $author = '', $gravatar = '';

06

     

07

    public function save(){

08

        DB::query("

09

            INSERT INTO webchat_lines (author, gravatar, text)

10

            VALUES (

11

                '".DB::esc($this->author)."',

12

                '".DB::esc($this->gravatar)."',

13

                '".DB::esc($this->text)."'

14

        )");

15

         

16

        // Возвращаем объект MySQLi класса DB

17

         

18

        return DB::getMySQLiObject();

19

    }

20

}

ChatUser.class.php

01

class ChatUser extends ChatBase{

02

     

03

    protected $name = '', $gravatar = '';

04

     

05

    public function save(){

06

         

07

        DB::query("

08

            INSERT INTO webchat_users (name, gravatar)

09

            VALUES (

10

                '".DB::esc($this->name)."',

11

                '".DB::esc($this->gravatar)."'

12

        )");

13

         

14

        return DB::getMySQLiObject();

15

    }

16

     

17

    public function update(){

18

        DB::query("

19

            INSERT INTO webchat_users (name, gravatar)

20

            VALUES (

21

                '".DB::esc($this->name)."',

22

                '".DB::esc($this->gravatar)."'

23

            ) ON DUPLICATE KEY UPDATE last_activity = NOW()");

24

    }

25

}

Chat.class.php – Часть 1

01

/* Класс Chat содержит публичные статические методы, которые используются в ajax.php */

02

 

03

class Chat{

04

     

05

    public static function login($name,$email){

06

        if(!$name || !$email){

07

            throw new Exception('Заполните все необходимые поля.');

08

        }

09

         

10

        if(!filter_input(INPUT_POST,'email',FILTER_VALIDATE_EMAIL)){

11

            throw new Exception('Неправильный адрес email.');

12

        }

13

         

14

        // Подготовка кэша gravatar:

15

        $gravatar = md5(strtolower(trim($email)));

16

         

17

        $user = new ChatUser(array(

18

            'name'      => $name,

19

            'gravatar'  => $gravatar

20

        ));

21

         

22

        // Метод save возвращает объект MySQLi

23

        if($user->save()->affected_rows != 1){

24

            throw new Exception('Данное имя используется.');

25

        }

26

         

27

        $_SESSION['user']   = array(

28

            'name'      => $name,

29

            'gravatar'  => $gravatar

30

        );

31

         

32

        return array(

33

            'status'    => 1,

34

            'name'      => $name,

35

            'gravatar'  => Chat::gravatarFromHash($gravatar)

36

        );

37

    }

38

     

39

    public static function checkLogged(){

40

        $response = array('logged' => false);

41

             

42

        if($_SESSION['user']['name']){

43

            $response['logged'] = true;

44

            $response['loggedAs'] = array(

45

                'name'      => $_SESSION['user']['name'],

46

                'gravatar'  => Chat::gravatarFromHash($_SESSION['user']['gravatar'])

47

            );

48

        }

49

         

50

        return $response;

51

    }

52

     

53

    public static function logout(){

54

        DB::query("DELETE FROM webchat_users WHERE name = '".DB::esc($_SESSION['user']['name'])."'");

55

         

56

        $_SESSION = array();

57

        unset($_SESSION);

58

 

59

        return array('status' => 1);

60

    }

Chat.class.php – Часть 2

01

    public static function submitChat($chatText){

02

        if(!$_SESSION['user']){

03

            throw new Exception('Вы вышли из чата');

04

        }

05

         

06

        if(!$chatText){

07

            throw new Exception('Вы не ввели сообщение.');

08

        }

09

     

10

        $chat = new ChatLine(array(

11

            'author'    => $_SESSION['user']['name'],

12

            'gravatar'  => $_SESSION['user']['gravatar'],

13

            'text'      => $chatText

14

        ));

15

     

16

        // Метод save возвращает объект MySQLi

17

        $insertID = $chat->save()->insert_id;

18

     

19

        return array(

20

            'status'    => 1,

21

            'insertID'  => $insertID

22

        );

23

    }

24

     

25

    public static function getUsers(){

26

        if($_SESSION['user']['name']){

27

            $user = new ChatUser(array('name' => $_SESSION['user']['name']));

28

            $user->update();

29

        }

30

         

31

        // Удаляем записи чата старше 5 минут и пользователей, неактивных в течении 30 секунд

32

         

33

        DB::query("DELETE FROM webchat_lines WHERE ts < SUBTIME(NOW(),'0:5:0')");

34

        DB::query("DELETE FROM webchat_users WHERE last_activity < SUBTIME(NOW(),'0:0:30')");

35

         

36

        $result = DB::query('SELECT * FROM webchat_users ORDER BY name ASC LIMIT 18');

37

         

38

        $users = array();

39

        while($user = $result->fetch_object()){

40

            $user->gravatar = Chat::gravatarFromHash($user->gravatar,30);

41

            $users[] = $user;

42

        }

43

     

44

        return array(

45

            'users' => $users,

46

            'total' => DB::query('SELECT COUNT(*) as cnt FROM webchat_users')->fetch_object()->cnt

47

        );

48

    }

49

     

50

    public static function getChats($lastID){

51

        $lastID = (int)$lastID;

52

     

53

        $result = DB::query('SELECT * FROM webchat_lines WHERE id > '.$lastID.' ORDER BY id ASC');

54

     

55

        $chats = array();

56

        while($chat = $result->fetch_object()){

57

             

58

            // Возвращаем время создания сообщения в формате GMT (UTC):

59

             

60

            $chat->time = array(

61

                'hours'     => gmdate('H',strtotime($chat->ts)),

62

                'minutes'   => gmdate('i',strtotime($chat->ts))

63

            );

64

             

65

            $chat->gravatar = Chat::gravatarFromHash($chat->gravatar);

66

             

67

            $chats[] = $chat;

68

        }

69

     

70

        return array('chats' => $chats);

71

    }

72

     

73

    public static function gravatarFromHash($hash, $size=23){

74

        return 'http://www.gravatar.com/avatar/'.$hash.'?size='.$size.'&default='.

75

                urlencode('http://www.gravatar.com/avatar/ad516503a11cd5ca435acc9bb6523536?size='.$size);

76

    }

77

}

4

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]