{"id":121,"date":"2023-09-22T13:00:00","date_gmt":"2023-09-22T06:00:00","guid":{"rendered":"https:\/\/danaidesign.com\/?p=121"},"modified":"2024-01-16T23:10:05","modified_gmt":"2024-01-16T16:10:05","slug":"security-your-libraries-file-from-cdn-with-sri","status":"publish","type":"post","link":"https:\/\/danaidesign.com\/security-your-libraries-file-from-cdn-with-sri\/","title":{"rendered":"\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22\u0e43\u0e2b\u0e49\u0e44\u0e1f\u0e25\u0e4c Libraries \u0e08\u0e32\u0e01 CDN \u0e14\u0e49\u0e27\u0e22 SRI"},"content":{"rendered":"\n

\u0e16\u0e36\u0e07\u0e41\u0e21\u0e49 CDN \u0e2d\u0e22\u0e48\u0e32\u0e07 Google Hosted Libraries, JsDelivr \u0e2b\u0e23\u0e37\u0e2d cdnjs \u0e08\u0e30\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c\u0e02\u0e2d\u0e07\u0e40\u0e23\u0e32\u0e21\u0e35 Performance \u0e17\u0e35\u0e48\u0e14\u0e35\u0e02\u0e36\u0e49\u0e19 \u0e41\u0e15\u0e48\u0e16\u0e36\u0e07\u0e01\u0e23\u0e30\u0e19\u0e31\u0e49\u0e19 \u0e01\u0e47\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e2b\u0e21\u0e32\u0e22\u0e04\u0e27\u0e32\u0e21\u0e27\u0e48\u0e32\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e35\u0e49\u0e08\u0e30\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22\u0e40\u0e2a\u0e21\u0e2d\u0e44\u0e1b \u0e14\u0e31\u0e07\u0e19\u0e31\u0e49\u0e19 \u0e40\u0e23\u0e32\u0e08\u0e36\u0e07\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35 \u201c\u0e42\u0e04\u0e49\u0e14\u201d \u0e1a\u0e32\u0e07\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e21\u0e32\u0e0a\u0e48\u0e27\u0e22\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e27\u0e48\u0e32\u0e44\u0e1f\u0e25\u0e4c\u0e15\u0e48\u0e32\u0e07\u0e46 \u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e19\u0e33\u0e21\u0e32\u0e43\u0e0a\u0e49\u0e19\u0e31\u0e49\u0e19 \u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e16\u0e39\u0e01 Hack \u0e2b\u0e23\u0e37\u0e2d\u0e21\u0e35\u0e01\u0e32\u0e23\u0e41\u0e01\u0e49\u0e44\u0e1b\u0e08\u0e32\u0e01\u0e44\u0e1f\u0e25\u0e4c\u0e15\u0e49\u0e19\u0e09\u0e1a\u0e31\u0e1a \u0e42\u0e14\u0e22\u0e42\u0e04\u0e49\u0e14\u0e17\u0e35\u0e48\u0e1e\u0e39\u0e14\u0e16\u0e36\u0e07\u0e40\u0e23\u0e32\u0e40\u0e23\u0e35\u0e22\u0e01\u0e27\u0e48\u0e32 SRI \u0e2b\u0e23\u0e37\u0e2d Subresource Integrity<\/p>\n\n\n\n

\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e19\u0e46 \u0e17\u0e35\u0e48\u0e40\u0e04\u0e22\u0e43\u0e0a\u0e49 Bootsrap \u0e04\u0e07\u0e08\u0e30\u0e40\u0e04\u0e22\u0e1c\u0e48\u0e32\u0e19\u0e15\u0e32\u0e42\u0e04\u0e49\u0e14\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30\u0e19\u0e35\u0e49\u0e01\u0e31\u0e19\u0e21\u0e32\u0e1a\u0e49\u0e32\u0e07 \u0e2a\u0e34\u0e48\u0e07\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19 integrity<\/code> \u0e19\u0e35\u0e48\u0e41\u0e2b\u0e25\u0e30\u0e04\u0e23\u0e31\u0e1a\u0e17\u0e35\u0e48\u0e40\u0e23\u0e35\u0e22\u0e01\u0e27\u0e48\u0e32 SRI \u0e2b\u0e23\u0e37\u0e2d Subresource Integrity<\/p>\n\n\n

<link<\/span> href<\/span>=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.2\/dist\/css\/bootstrap.min.css\"<\/span> rel<\/span>=\"stylesheet\"<\/span> integrity<\/span>=\"sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV\/Dwwykc2MPK8M2HN\"<\/span> crossorigin<\/span>=\"anonymous\"<\/span>><\/span>\n<script<\/span> src<\/span>=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.2\/dist\/js\/bootstrap.bundle.min.js\"<\/span> integrity<\/span>=\"sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN\/o0jlpcV8Qyq46cDfL\"<\/span> crossorigin<\/span>=\"anonymous\"<\/span>><\/span><\/script<\/span>><\/span><\/code><\/span>Code language:<\/span> HTML, XML<\/span> (<\/span>xml<\/span>)<\/span><\/small><\/pre>\n\n\n

Subresource Integrity (SRI) \u0e04\u0e37\u0e2d\u0e2d\u0e30\u0e44\u0e23<\/h2>\n\n\n\n

Subresource Integrity (SRI) \u0e04\u0e37\u0e2d \u0e40\u0e1b\u0e47\u0e19\u0e1f\u0e35\u0e40\u0e08\u0e2d\u0e23\u0e4c\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22\u0e17\u0e35\u0e48\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e31\u0e27\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49 Browser \u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e44\u0e1f\u0e25\u0e4c Scripts \u0e2b\u0e23\u0e37\u0e2d Stylesheets \u0e19\u0e31\u0e49\u0e19\u0e46 \u0e44\u0e14\u0e49\u0e27\u0e48\u0e32\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e41\u0e01\u0e49\u0e44\u0e02\u0e44\u0e1b\u0e08\u0e32\u0e01\u0e44\u0e1f\u0e25\u0e4c\u0e15\u0e49\u0e19\u0e09\u0e1a\u0e31\u0e1a \u0e14\u0e31\u0e07\u0e19\u0e31\u0e49\u0e19 \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e1b\u0e47\u0e19\u0e01\u0e32\u0e23\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e01\u0e31\u0e1a Browser \u0e40\u0e23\u0e32\u0e08\u0e36\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35 flag \u0e1a\u0e32\u0e07\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e44\u0e27\u0e49\u0e43\u0e2b\u0e49 Browser \u0e44\u0e27\u0e49\u0e04\u0e2d\u0e22\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e42\u0e14\u0e22 flag \u0e17\u0e35\u0e48\u0e27\u0e48\u0e32\u0e19\u0e35\u0e49 \u0e01\u0e47\u0e04\u0e37\u0e2d \u0e41\u0e2d\u0e15\u0e17\u0e23\u0e34\u0e1a\u0e34\u0e27\u0e15\u0e4c\u0e17\u0e35\u0e48\u0e0a\u0e37\u0e48\u0e2d integrity \u0e19\u0e31\u0e48\u0e19\u0e40\u0e2d\u0e07 \u0e40\u0e1b\u0e47\u0e19\u0e17\u0e35\u0e48\u0e17\u0e23\u0e32\u0e1a\u0e01\u0e31\u0e19\u0e14\u0e35\u0e27\u0e48\u0e32\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25 1 \u0e0a\u0e38\u0e14\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e40\u0e02\u0e49\u0e32 hash function \u0e41\u0e25\u0e49\u0e27\u0e40\u0e23\u0e32\u0e08\u0e30\u0e44\u0e14\u0e49\u0e04\u0e48\u0e32\u0e04\u0e07\u0e17\u0e35\u0e48\u0e40\u0e2a\u0e21\u0e2d \u0e14\u0e31\u0e07\u0e19\u0e31\u0e49\u0e19 \u0e40\u0e23\u0e32\u0e08\u0e36\u0e07\u0e2d\u0e32\u0e28\u0e31\u0e22\u0e04\u0e27\u0e32\u0e21\u0e08\u0e23\u0e34\u0e07\u0e02\u0e49\u0e2d\u0e19\u0e35\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e19\u0e33\u0e44\u0e1f\u0e25\u0e4c\u0e02\u0e2d\u0e07\u0e40\u0e23\u0e32\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48 hash function \u0e41\u0e25\u0e49\u0e27\u0e19\u0e33\u0e04\u0e48\u0e32\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e44\u0e1b\u0e43\u0e2a\u0e48\u0e43\u0e19 integrity \u0e41\u0e15\u0e48\u0e01\u0e48\u0e2d\u0e19\u0e08\u0e30\u0e19\u0e33\u0e44\u0e1b\u0e43\u0e2a\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e41\u0e1b\u0e25\u0e07\u0e04\u0e48\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e41\u0e1a\u0e1a base64-encoded \u0e40\u0e2a\u0e35\u0e22\u0e01\u0e48\u0e2d\u0e19<\/p>\n\n\n\n

Cross Origin Resource Sharing (CORS) \u0e04\u0e37\u0e2d\u0e2d\u0e30\u0e44\u0e23<\/h2>\n\n\n\n

Cross Origin Resource Sharing (CORS) \u0e04\u0e37\u0e2d \u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e02\u0e36\u0e49\u0e19\u0e42\u0e14\u0e22 W3C \u0e0b\u0e36\u0e48\u0e07\u0e21\u0e31\u0e19\u0e08\u0e30\u0e17\u0e33\u0e43\u0e2b\u0e49 \u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e02\u0e49\u0e32\u0e21 Domain \u0e01\u0e31\u0e19\u0e44\u0e14\u0e49 \u0e42\u0e14\u0e22 CORS \u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e1c\u0e39\u0e49\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e27\u0e34\u0e18\u0e35\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07 Web Browser \u0e41\u0e25\u0e30 Web Server \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e17\u0e35\u0e48\u0e08\u0e30\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e34\u0e43\u0e2b\u0e49\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e02\u0e49\u0e32\u0e21 Domain \u0e44\u0e14\u0e49\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22<\/p>\n\n\n\n

Subresource Integrity (SRI) \u0e17\u0e33\u0e07\u0e32\u0e19\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e44\u0e23<\/h2>\n\n\n\n

\u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e40\u0e02\u0e49\u0e32\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c Browser \u0e08\u0e30\u0e40\u0e23\u0e34\u0e48\u0e21\u0e17\u0e33\u0e01\u0e32\u0e23\u0e2d\u0e48\u0e32\u0e19\u0e44\u0e1f\u0e25\u0e4c\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e41\u0e17\u0e47\u0e01 <script><\/code> \u0e2b\u0e23\u0e37\u0e2d <link><\/code> \u0e0b\u0e36\u0e48\u0e07\u0e16\u0e49\u0e32\u0e2b\u0e32\u0e01\u0e41\u0e17\u0e47\u0e01\u0e14\u0e31\u0e07\u0e01\u0e25\u0e48\u0e32\u0e27\u0e21\u0e35\u0e01\u0e32\u0e23\u0e30\u0e1a\u0e38\u0e41\u0e2d\u0e15\u0e17\u0e23\u0e34\u0e1a\u0e34\u0e27\u0e15\u0e4c integrity \u0e40\u0e2d\u0e32\u0e44\u0e27\u0e49 \u0e21\u0e31\u0e19\u0e08\u0e30\u0e17\u0e33\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e44\u0e1f\u0e25\u0e4c\u0e14\u0e31\u0e07\u0e01\u0e25\u0e48\u0e32\u0e27\u0e42\u0e14\u0e22\u0e01\u0e32\u0e23\u0e14\u0e39\u0e23\u0e2b\u0e31\u0e2a hash \u0e2b\u0e32\u0e01\u0e1e\u0e1a\u0e27\u0e48\u0e32\u0e21\u0e35\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e44\u0e21\u0e48\u0e15\u0e23\u0e07\u0e01\u0e31\u0e19 Browser \u0e08\u0e30\u0e1b\u0e0e\u0e34\u0e40\u0e2a\u0e18\u0e01\u0e32\u0e23\u0e42\u0e2b\u0e25\u0e14\u0e44\u0e1f\u0e25\u0e4c\u0e19\u0e31\u0e49\u0e19\u0e17\u0e31\u0e19\u0e17\u0e35<\/p>\n\n\n\n

\u0e2a\u0e23\u0e49\u0e32\u0e07 SRI Hash \u0e44\u0e14\u0e49\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e44\u0e23<\/h2>\n\n\n\n

\u0e40\u0e23\u0e32\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e2a\u0e23\u0e49\u0e32\u0e07 SRI Hash \u0e44\u0e14\u0e49\u0e07\u0e48\u0e32\u0e22\u0e46 \u0e40\u0e1e\u0e35\u0e22\u0e07\u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c https:\/\/www.srihash.org<\/a> \u0e41\u0e25\u0e30\u0e19\u0e33 Url \u0e02\u0e2d\u0e07 Libraries \u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e44\u0e1b\u0e43\u0e2a\u0e48 \u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19\u0e01\u0e47\u0e19\u0e33\u0e42\u0e04\u0e49\u0e14\u0e44\u0e1b\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e44\u0e14\u0e49\u0e40\u0e25\u0e22 \u0e41\u0e15\u0e48\u0e40\u0e2d\u0e32\u0e08\u0e23\u0e34\u0e07\u0e46 CDN \u0e17\u0e35\u0e48\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23 Hosted Libraries \u0e2a\u0e48\u0e27\u0e19\u0e43\u0e2b\u0e0d\u0e48\u0e01\u0e47\u0e08\u0e30\u0e21\u0e32\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e01\u0e31\u0e1a SRI \u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e49\u0e27<\/p>\n\n\n\n

\u0e2a\u0e23\u0e38\u0e1b<\/h2>\n\n\n\n

Subresource Integrity (SRI) \u0e40\u0e1b\u0e47\u0e19\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e14\u0e49\u0e32\u0e19\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22\u0e17\u0e35\u0e48\u0e40\u0e2b\u0e21\u0e32\u0e30\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e1c\u0e39\u0e49\u0e17\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e40\u0e08\u0e49\u0e32\u0e02\u0e2d\u0e07\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c, \u0e19\u0e31\u0e01\u0e1e\u0e31\u0e12\u0e19\u0e32, \u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23 CDN \u0e2b\u0e23\u0e37\u0e2d Third Party Hosts \u0e42\u0e14\u0e22 SRI \u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e31\u0e27\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e19\u0e01\u0e32\u0e23\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19 Source \u0e44\u0e1f\u0e25\u0e4c\u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e14\u0e36\u0e07\u0e21\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e32\u0e01 Third Party \u0e17\u0e31\u0e49\u0e07\u0e2b\u0e25\u0e32\u0e22\u0e27\u0e48\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e44\u0e1f\u0e25\u0e4c\u0e15\u0e49\u0e19\u0e09\u0e1a\u0e31\u0e1a \u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e16\u0e39\u0e01\u0e41\u0e01\u0e49\u0e44\u0e02\u0e42\u0e14\u0e22\u0e1c\u0e39\u0e49\u0e44\u0e21\u0e48\u0e2b\u0e27\u0e31\u0e07\u0e14\u0e35 \u0e14\u0e31\u0e07\u0e19\u0e31\u0e49\u0e19 \u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e44\u0e1f\u0e25\u0e4c\u0e08\u0e32\u0e01 CDN \u0e15\u0e48\u0e32\u0e07\u0e46 \u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e35\u0e49\u0e04\u0e27\u0e23\u0e21\u0e35 SRI \u0e15\u0e34\u0e14\u0e21\u0e32\u0e14\u0e49\u0e27\u0e22\u0e40\u0e2a\u0e21\u0e2d \u0e2d\u0e31\u0e19\u0e17\u0e35\u0e48\u0e08\u0e23\u0e34\u0e07\u0e41\u0e25\u0e49\u0e27 CDN \u0e17\u0e35\u0e48\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23 Hosted Libraries \u0e2b\u0e25\u0e32\u0e22\u0e46 \u0e40\u0e08\u0e49\u0e32\u0e2d\u0e22\u0e48\u0e32\u0e07 JsDelivr \u0e41\u0e25\u0e30 cdnjs \u0e01\u0e47\u0e21\u0e35\u0e01\u0e32\u0e23 Generate SRI \u0e43\u0e2b\u0e49\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2d\u0e22\u0e39\u0e48\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e19\u0e46 \u0e01\u0e47\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e19\u0e33\u0e44\u0e1b\u0e43\u0e0a\u0e49\u0e44\u0e14\u0e49\u0e40\u0e25\u0e22<\/p>\n\n\n\n

\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07:<\/strong><\/p>\n\n\n\n