0.00
0 читателей, 10 топиков

Шифрование передаваемых данных с помощью public key

PHP

Генерация ключа

<?php
$config = array(
    "digest_alg" => 'sha512',
        "private_key_bits" => 4096,
    "private_key_type" => OPENSSL_KEYTYPE_RSA
);
$keyPair = openssl_pkey_new($config);
$privateKey = NULL;
openssl_pkey_export($keyPair, $privateKey);
var_dump($privateKey);
$keyDetails = openssl_pkey_get_details($keyPair);
$publicKey = $keyDetails['key'];
var_dump($publicKey);
die();
?>


Библиотека для работы

github.com/safarishi/php-rsa-js/

Check HMAC

PHP
private function CheckHMAC($sSercet)
{
	if (!$sSercet) throw new Exception('Sercet key is not defined');
	$sPostData    = file_get_contents('php://input');
	$sCheckSign   = base64_encode(hash_hmac('SHA256', $sPostData, $sSercet, true));
	$sRequestSign = isset($_SERVER['HTTP_CONTENT_HMAC']) ? $_SERVER['HTTP_CONTENT_HMAC'] : '';
	if ($sCheckSign !== $sRequestSign) {
		throw new Exception('Hacking atempt!');
	};
	return true;
}

Минификация html в Smarty

PHP
function minify_html($tpl_output, Smarty_Internal_Template $template) {
    $tpl_output = preg_replace('![\t ]*[\r\n]+[\t ]*!', '', $tpl_output);
    return $tpl_output;
}

// register the outputfilter
$smarty->registerFilter("output", "minify_html")

Загрузка картинок php

PHP
Чтобы максимально обезопасить свой сайт от взлома нужно выполнять следующие действия при загрузке картинок на сайт.
  1. Проверять расширение файла
  2. Проверять mime-тип файла
  3. Проверять наличие вредоностного кода в картинке, в частности php
  4. Запретить выполнение php в папке с картинками

Читать дальше →

Дерево категорий без рекурсии на php

PHP
В приведенной ниже статье Вы сможете найти ответ на то "Как построить на php дерево сущностей (категорий или комментариев) без использования рекурсивных запросов".

Дана таблица в которой хранятся все категории с указанием у них родительской категории. Необходимо построить дерево категорий, при этом не используя рекурсию. Вот как это можно сделать!

Читать дальше →