Продължете към съдържанието
Начало » Блог » Цялостност на субресурсите (SRI)

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

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;
}