Автор работы: Пользователь скрыл имя, 05 Мая 2014 в 18:58, курсовая работа
В данной работе речь пойдет о сайте кафедры №402 «Радиосистемы управления и передачи информации» факультета радиоэлектроники летательных аппаратов МАИ. Основной целью при создании сайта является предоставление в текстовом, графическом и визуальном виде информации о самой кафедре, предлагаемых специальностях, преподавательском составе и научной деятельности сотрудников кафедры. В то же время большинство посетителей также интересуются тем, как проходит учебный процесс и каким образом можно связаться с руководством кафедры.
Введение
Список используемых сокращений
1. Обзор основных форматов документов, размещаемых на сайте.
1.1 Форматы материалов, размещаемых на сайте.
1.2 Анализ форматов файлов, представленных на сайтах различных институтов.
2. Анализ потенциальных уязвимостей материала, размещенного на сайте.
2.1 Возможные угрозы сайтам.
2.2 Потенциальные уязвимости материалов, публикуемых на сайте.
3. Анализ методов защиты содержимого сайта от несанкционированного использования.
3.1 Защита с помощью специализированного программного кода.
3.2 Защита с использованием методов шифрования.
3.3 Защита с использованием методов стеганографии.
3.4 Сравнительный анализ рассмотренных методов защиты данных, выложенных на сайте.
4. Создание механизмов защиты данных, представленных на сайте.
4.1 Использование водяного знака для защиты изображений.
4.2 Защита динамических изображений и видеофайлов.
4.3 Защита гипертекстовых материалов.
5. Разработка php-скрипта для защиты данных, публикуемых на сайте.
5.1 Создание скрипта для добавления водяного знака на изображение.
5.2 Внедрение скрипта в систему управления содержимого сайта кафедры.
6. Экономическая часть.
7. Охрана труда.
Заключение
Библиография
$picture_height = $Image_height;
}
//степень прозачности цвз
$alpha_level = 25;
$picture = AddWatermark($Im);
$picture = Resize ($image);
Полный код программы представлен в Приложении 2.
Результат исполнения данной программы показан на рис. 5.8 – 5.9.
Рис. 5.8 Исходное изображение.
Рис. 5.9 Обработанное изображение.
5.1.2 Текстовые данные.
Для реализации внедрения данных в текстовую последовательность была написана следующая программа.
<html>
<head><title></title></head>
<body>
<br>
<br>
<align = "center"><center>
Выберите действие:
<form method="POST" action="hide.php">
<input type="submit" value="Скрыть">
</form>
<form method="POST" action="text.php">
<input type="submit" value="Извлечь">
</form>
</center>
</body>
</html>
Результат выполнения данного кода показан на рис. 5.10.
Рисунок 5.10 Пользовательский интерфейс.
Этот код позволяет выбрать пользователю действие: скрыть данные в тексте или извлечь скрытие данные из текста. Скрываемые данные также задаются пользователем.
При размещении на сайте текст может быть отформатирован различными способами. Скрытие данных в моей программе происходит путем добавления пробелов после каждого слова. Причем «1» соответствуе два добавочных пробела, а «0» - один.
Алгоритм скрытия данных состоит из следующих шагов:
//введенный текст
$mass = $_POST['Article'];
//разбиваем текст на слова
$str = explode(" ", $mass);
//количество слов
$i = count($str);
//автор - скрываемый текст
$hide = $_POST['Autor'];
//перевод внутренней
//длина строки
$lim = strlen($hide);
//в 10 системе
$arr_hide = str_split($hide);
//в 2 системе
for ($q=0; $q<=$lim; $q++){
$arr_asc[$q] = ord($arr_hide[$q]);
$bin_hide[$q] = decbin($arr_asc[$q]);
while(strlen($bin_hide[$q])<8)
$b_hide .= $bin_hide[$q];
}
Скрываемые данные преобразованы в битовый поток, в зависимости от значения текущего бита добавляется либо один (соответствует «0»), либо два (соответствует «1») пробела.
if($b_hide[$w] == "1")
{
$MESSAGE .= $str[$j][$k]." ";
}
else
{
$MESSAGE .= $str[$j][$k]. " ";
}
Полный программный код представлен в Приложении 3.
Результат исполнения данной программы показан на рис. 5.11 – 5.12.
Рис. 5.11 Исходные данные для процесса скрытия данных в текстовом файле.
Рис. 5.12 Обработанный текст, содержащий в себе скрытые данные.
Именно в таком виде данные будут размещены на сайте. В случае нехватки объема для внедрения скрытых данных программа выдаст следующее сообщение (рис. 5.13):
Рис. 5.13 Сообщение об ошибке.
В дальнейшем можно будет выделить скрытые даннные (рис. 5.14).
Рис. 5.14 Исходный текст и скрытые данные, полученные после извлечения.
5.2ВНЕДРЕНИЕ СКРИПТА В СИСТЕМУ УПРАВЛЕНИЯ СОДЕРЖИМОГО САЙТА КАФЕДРЫ
Как было отмечено ранее, для загрузки изображений на сайте используется СMS, включающая редактор CKЕditor совместно с файловым менеджером CKFinder.
В состав CKFinder входят несколько плагинов, одним из которых является «Waretmark». В результате исполнения этого плагина происходит добавление на изображение логотипа CKFinder (рис. 5.15). По умолчанию данный плагин отключен.
Рисунок 5.15 Логотип CKFinder.
Для решения поставленной нами задачи – внедрения процесса нанесения водяного знака на загруженное изображение – необходимо произвести следующие действия:
Для этого надо записать в конфигурационный
файл CKFinder (../localhost/www/c-panel/
include_once "plugins/watermark/plugin.php"
Новое содержание плагина Watermark (../localhost/www/c-panel/
<?php
class Watermark
{
function onAfterFileUpload($
{
global $config;
$watermarkSettings = $config['Plugin_Watermark'];
$this->createWatermark($
return true;
}
function createWatermark($sourceFile, $watermarkFile)
{
if (!file_exists($watermarkFile)) {
$watermarkFile = dirname(__FILE__) . "/" . $watermarkFile;
}
if (!file_exists($watermarkFile)) {
return false;
}
$watermarkImageAttr = @getimagesize($watermarkFile);
$sourceImageAttr = @getimagesize($sourceFile);
if ($sourceImageAttr === false || $watermarkImageAttr === false) {
return false;
}
//размеры фото
$Image_width = $sourceImageAttr[0];
$Image_height = $sourceImageAttr[1];
//размеры логотипа
$Logo_width = $watermarkImageAttr[0];
$Logo_height = $watermarkImageAttr[1];
//степень прозачности цвз
$alpha_level = 25;
//максимальные размеры фото
$max_width = 640;
//$max_height = 480;
//проверяем размеры фото
if ( $Image_width > $max_width || $Image_height > $max_height) {
$picture_width = $max_width;
$picture_height = $max_width * $Image_height / $Image_width;
}
else{
$picture_width = $Image_width;
$picture_height = $Image_height;
}
$oWatermarkImage = @imagecreatefrompng($
$oImage = @imagecreatefromjpeg($
if (isset($ermsg) || false === $oImage || false === $oWatermarkImage) {
return false;
}
//изменяем размеры фото
$myPicture = imagecreatetruecolor($picture_
imagecopyresampled($myPicture, $oImage, 0, 0, 0, 0, $picture_width, $picture_height, $Image_width, $Image_height);
//подгоняем цвз под размер фото
$myWatermark = imagecreatetruecolor($picture_
imagecopyresampled($
//размещаем цвз на фото
imagecopymerge($myPicture, $myWatermark, 0, 0, 0, 0, $picture_width, $picture_height, $alpha_level);
$quality = 50;
imagejpeg($myPicture, $sourceFile, $quality);
imageDestroy($oImage);
imageDestroy($oWatermarkImage)
}
}
$watermark = new Watermark();
$config['Hooks']['
if (empty($config['Plugin_
{
$config['Plugin_Watermark'] = array(
"source" => "cvzz.png", ////изменила файл
"marginRight" => 5,
"marginBottom" => 5,
"quality" => 100,
"transparency" => 100,
);
}
Изображение водяного знака представлено на рис. 5.16.
Рис. 5.16 Изображение водяного знака для использования на сайте кафедры № 402.
После изменения кода загрузка изображения происходит следующим образом:
Рис. 5.17 Отправка изображения на сервер.
Рис. 5.18 Предоставление пользователю возможности отредактировать изображение.
Рис. 5.19 Размещение изображения на сайте.
Система управления содержимом
сайта кафедры №402 включает текстовый
редактор CKEditor. За обработку текстовых
данных в нем отвечает плагин «pastetext» (…\localhost\www\c-panel\
Новое содержание плагина, добавляющего
текст на сайт (…\localhost\www\c-panel\
(function()
{
CKEDITOR.dialog.add( 'pastetext', function( a )
{
return {
title : a.lang.pasteText.title,
minWidth : CKEDITOR.env.ie && CKEDITOR.env.quirks ? 368 : 350,
minHeight : 240,
onShow : function()
{
this.getContentElement('
},
onOk : function()
{
var b = this.getContentElement('
c = this.getParentEditor();
//ФРЕЛА МАИ в двоичной системе исчисления
var hide = new Array (1,1,0,1,0,1,0,0,1,1,0,1,0,0,
//длина внедряемого потока бит
var i_hide = hide.length;
//разделение исходного текста на слова
var arr = b.split( " " );
//длина слова
var i_arr = arr.length;
//массив, для хранения обработанных слов
var new_arr = new Array();
//переменная для
var text = "";
var q_hide = 0;
//добавление пробелов в конце слов
for ( var i = 0 ; i <= max; i++ )
{
if ( hide[q_hide] == "1" ) {new_arr[i] = arr[i]. concat(" ");}
else { new_arr[i] = arr[i]. concat(" "); }
q_hide++;
}
//соединение слов в строку
for ( var i = 0 ; i <= max; i++ )
{
text = text. concat (new_arr[i]);
}
setTimeout(function()
{
c.fire('paste',{text : text});
}, 0 );
},
contents :
[
{
label : a.lang.common.generalTab,
id : 'general',
elements :
[
{
type : 'html',
id : 'pasteMsg',
html : '<div style="white-space:normal;
},
{
type:'textarea',
id:'content',
className:'cke_pastetext',
onLoad : function()
{
var b = this.getDialog().
c = this.getElement().
Информация о работе Защита информации от несанкционированного доступа