Цялостност на субресурсите (SRI)

10
210
Добави коментар
AppFlow
AppFlow

Subresource Integrity (SRI) – Цялостност на субресурсите е механизъм за сигурност, който кара браузърите да проверяват дали включения асет не е бил манипулиран по някакъв начин. Това става чрез проверка на хеша на включения css или javascript файл. Като се използва основно при работа с CDN. Създали сме примерна функция, чрез която да можете да генерирате хеш за Вашите асети:

<?php
/*
* Make asset with SRI and CORS
* $file = Full asset URL (required)
* $hash = Hash algorithm
*/
public function makeAsset($file, $hash=’sha384′) {
$sri_cors = ‘ integrity=“‘.$hash.’-‘.
base64_encode(hash_file($hash, $file, true)).
‘“ crossorigin=“anonymous“‘;

switch(true) {
case FALSE !== strpos($file, ‘.css’):
$asset = ‘<link rel=“stylesheet“ href=“‘.$file.'“‘.$sri_cors.’>’;
break;
case FALSE !== strpos($file, ‘.js’):
$asset = ‘<script src=“‘.$file.'“‘.$sri_cors.’></script>’;
break;
}

return $asset;
}