{"id":761,"date":"2025-06-11T23:03:37","date_gmt":"2025-06-11T15:03:37","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/761.html"},"modified":"2025-06-11T23:03:37","modified_gmt":"2025-06-11T15:03:37","slug":"laravel-blade%ef%bc%9a%e5%a6%82%e4%bd%95%e9%80%83%e9%80%b8%e5%8d%b1%e9%99%a9%e7%9a%84-html-javascript","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/761.html","title":{"rendered":"Laravel Blade\uff1a\u5982\u4f55\u9003\u9038\u5371\u9669\u7684 HTML &amp; JavaScript"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312; Laravel Blade &#27169;&#26495;&#24341;&#25806;&#20013;&#65292;&#23433;&#20840;&#26159;&#33267;&#20851;&#37325;&#35201;&#30340;&#65292;&#20197;&#38450;&#27490; XSS&#65288;&#36328;&#31449;&#33050;&#26412;&#25915;&#20987;&#65289;&#21644;&#20854;&#20182;&#28508;&#22312;&#30340;&#23433;&#20840;&#38382;&#39064;&#12290;&#20197;&#19979;&#26159;&#19968;&#20123;&#26041;&#27861;&#21644;&#26368;&#20339;&#23454;&#36341;&#65292;&#24110;&#21161;&#20320;&#22312; Blade &#20013;&#23433;&#20840;&#22320;&#22788;&#29702; HTML &#21644; JavaScript&#12290;<\/p>\n<h3>1. &#20351;&#29992; <code>{{ }}<\/code> &#35821;&#27861;<\/h3>\n<p>Laravel &#30340; Blade &#40664;&#35748;&#20351;&#29992;&#21452;&#22823;&#25324;&#21495; <code>{{ }}<\/code> &#26469;&#36755;&#20986;&#21464;&#37327;&#65292;&#36825;&#26377;&#21161;&#20110;&#38450;&#27490;&#19968;&#20123;&#24120;&#35265;&#30340; XSS &#25915;&#20987;&#12290;&#20363;&#22914;&#65306;<\/p>\n<pre><code class=\"language-blade\">&lt;p&gt;{{ $username }}&lt;\/p&gt;<\/code><\/pre>\n<h3>2. &#20351;&#29992; <code>{{ raw() }}<\/code> &#35821;&#27861;<\/h3>\n<p>&#22914;&#26524;&#20320;&#38656;&#35201;&#36755;&#20986;&#21407;&#22987;&#23383;&#31526;&#20018;&#32780;&#19981;&#36827;&#34892;&#36716;&#20041;&#65292;&#21487;&#20197;&#20351;&#29992; <code>{{ raw() }}<\/code> &#35821;&#27861;&#12290;&#20363;&#22914;&#65306;<\/p>\n<pre><code class=\"language-blade\">&lt;p&gt;{{ raw($htmlString) }}&lt;\/p&gt;<\/code><\/pre>\n<h3>3. &#20351;&#29992; Blade &#30340;&#23433;&#20840;&#20989;&#25968;<\/h3>\n<p>Blade &#25552;&#20379;&#20102;&#19968;&#20123;&#23433;&#20840;&#20989;&#25968;&#26469;&#24110;&#21161;&#20320;&#22788;&#29702; HTML &#21644; JavaScript&#12290;&#36825;&#20123;&#20989;&#25968;&#20250;&#33258;&#21160;&#23545;&#36755;&#20837;&#36827;&#34892;&#36716;&#20041;&#65292;&#20174;&#32780;&#38450;&#27490; XSS &#25915;&#20987;&#12290;<\/p>\n<h4>&#31034;&#20363;&#65306;&#36807;&#28388; HTML<\/h4>\n<p>&#20551;&#35774;&#20320;&#26377;&#19968;&#20010;&#29992;&#25143;&#36755;&#20837;&#30340; HTML &#23383;&#31526;&#20018;&#65292;&#24182;&#19988;&#20320;&#24819;&#23558;&#20854;&#26174;&#31034;&#22312;&#39029;&#38754;&#19978;&#65292;&#20294;&#19981;&#24076;&#26395;&#23427;&#34987;&#35299;&#26512;&#20026; HTML &#26631;&#31614;&#65306;<\/p>\n<pre><code class=\"language-blade\">&lt;div&gt;{!! htmlspecialchars($userInput, ENT_QUOTES, 'UTF-8') !!}&lt;\/div&gt;<\/code><\/pre>\n<h4>&#31034;&#20363;&#65306;&#36807;&#28388; JavaScript<\/h4>\n<p>&#22914;&#26524;&#20320;&#26377;&#19968;&#20010;&#29992;&#25143;&#36755;&#20837;&#30340; JavaScript &#20195;&#30721;&#65292;&#24182;&#19988;&#20320;&#24819;&#23558;&#20854;&#26174;&#31034;&#22312;&#39029;&#38754;&#19978;&#65292;&#20294;&#19981;&#24076;&#26395;&#23427;&#34987;&#25191;&#34892;&#65306;<\/p>\n<pre><code class=\"language-blade\">&lt;script&gt;{!! htmlspecialchars($userInput, ENT_QUOTES, 'UTF-8') !!}&lt;\/script&gt;<\/code><\/pre>\n<h3>4. &#20351;&#29992; Blade &#30340;&#23433;&#20840;&#26631;&#31614;<\/h3>\n<p>Blade &#25552;&#20379;&#20102;&#19968;&#20123;&#23433;&#20840;&#26631;&#31614;&#65292;&#21487;&#20197;&#24110;&#21161;&#20320;&#26356;&#26041;&#20415;&#22320;&#22788;&#29702; HTML &#21644; JavaScript&#12290;<\/p>\n<h4>&#31034;&#20363;&#65306;&#23433;&#20840;&#38142;&#25509;<\/h4>\n<p>&#22914;&#26524;&#20320;&#24819;&#21019;&#24314;&#19968;&#20010;&#23433;&#20840;&#30340;&#38142;&#25509;&#65292;&#21487;&#20197;&#20351;&#29992; <code>route()<\/code> &#20989;&#25968;&#24182;&#20256;&#36882;&#21442;&#25968;&#65306;<\/p>\n<pre><code class=\"language-blade\">&lt;a href=\"{{ route('show', ['id' =&gt; $postId]) }}\"&gt;{{ $postTitle }}&lt;\/a&gt;<\/code><\/pre>\n<h4>&#31034;&#20363;&#65306;&#23433;&#20840;&#34920;&#21333;&#23383;&#27573;<\/h4>\n<p>&#22914;&#26524;&#20320;&#24819;&#21019;&#24314;&#19968;&#20010;&#23433;&#20840;&#30340;&#34920;&#21333;&#23383;&#27573;&#65292;&#21487;&#20197;&#20351;&#29992; <code>input()<\/code> &#20989;&#25968;&#24182;&#35774;&#32622;&#23646;&#24615; <code>type=\"hidden\"<\/code>&#65306;<\/p>\n<pre><code class=\"language-blade\">&lt;input type=\"hidden\" name=\"userId\" value=\"{{ Auth::user()-&gt;id }}\"&gt;<\/code><\/pre>\n<h3>5. &#20351;&#29992;&#31532;&#19977;&#26041;&#24211;<\/h3>\n<p>&#34429;&#28982; Laravel &#20869;&#32622;&#20102;&#23433;&#20840;&#24615;&#21151;&#33021;&#65292;&#20294;&#26377;&#26102;&#20320;&#21487;&#33021;&#38656;&#35201;&#20351;&#29992;&#31532;&#19977;&#26041;&#24211;&#26469;&#36827;&#19968;&#27493;&#22686;&#24378;&#23433;&#20840;&#24615;&#12290;&#20363;&#22914;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992; <code>IlluminateSupportFacadesJs<\/code> &#31867;&#26469;&#22788;&#29702; JavaScript&#65306;<\/p>\n<pre><code class=\"language-php\">use IlluminateSupportFacadesJs;\n\n\/\/ &#36755;&#20986; JavaScript &#20195;&#30721;\necho Js::from('alert(\"Hello World!\");');<\/code><\/pre>\n<h3>&#24635;&#32467;<\/h3>\n<p>&#36890;&#36807;&#20351;&#29992; <code>{{ }}<\/code> &#35821;&#27861;&#12289;<code>{{ raw() }}<\/code> &#35821;&#27861;&#12289;Blade &#30340;&#23433;&#20840;&#20989;&#25968;&#21644;&#23433;&#20840;&#26631;&#31614;&#65292;&#20197;&#21450;&#20351;&#29992;&#31532;&#19977;&#26041;&#24211;&#65292;&#20320;&#21487;&#20197;&#26377;&#25928;&#22320;&#22312; Laravel Blade &#20013;&#23433;&#20840;&#22320;&#22788;&#29702; HTML &#21644; JavaScript&#12290;&#35760;&#20303;&#65292;&#23433;&#20840;&#27704;&#36828;&#26159;&#31532;&#19968;&#20301;&#30340;&#65292;&#19981;&#35201;&#24573;&#35270;&#20219;&#20309;&#28508;&#22312;&#30340;&#39118;&#38505;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#27010;&#35272;<\/h2><p>Laravel&#30340;&#27169;&#26495;&#24341;&#25806;Blade&#26088;&#22312;&#36890;&#36807;&#25552;&#20379;&#20415;&#21033;&#21644;&#39640;&#23618;&#27425;&#25277;&#35937;&#65292;&#20351;PHP&#20013;&#30340;HTML&#28210;&#26579;&#21464;&#24471;&#26356;&#21152;&#26041;&#20415;&#21644;&#23433;&#20840;&#12290;&#28982;&#32780;&#65292;&#20415;&#21033;&#24615;&#24448;&#24448;&#20276;&#38543;&#30528;&#39118;&#38505;&#65292;&#23588;&#20854;&#26159;&#22312;&#22788;&#29702;&#21253;&#21547;&#29992;&#25143;&#29983;&#25104;&#36755;&#20837;&#30340;&#21160;&#24577;&#20869;&#23481;&#26102;&#12290;&#20026;&#20102;&#30830;&#20445;&#24744;&#30340;Laravel&#24212;&#29992;&#31243;&#24207;&#30340;&#23433;&#20840;&#65292;&#38450;&#27490;&#36328;&#31449;&#33050;&#26412;&#65288;XSS&#65289;&#25915;&#20987;&#33267;&#20851;&#37325;&#35201;&#12290;&#22312;&#36825;&#37324;&#65292;&#25105;&#20204;&#23558;&#28145;&#20837;&#25506;&#35752;Laravel Blade&#25552;&#20379;&#30340;&#29992;&#20110;&#38450;&#27490;&#21361;&#38505;HTML&#21644;JavaScript&#30340;&#36807;&#28388;&#26426;&#21046;&#12290;<\/p><h2>&#29702;&#35299;XSS&#25915;&#20987;<\/h2><p>&#22312;&#24320;&#22987;&#22914;&#20309;&#25805;&#20316;&#20043;&#21069;&#65292;&#29702;&#35299;XSS&#25915;&#20987;&#33267;&#20851;&#37325;&#35201;&#12290;&#36328;&#31449;&#33050;&#26412;&#65288;Cross-Site Scripting&#65289;&#26159;&#19968;&#31181;&#23433;&#20840;&#28431;&#27934;&#65292;&#25915;&#20987;&#32773;&#36890;&#36807;&#21521;&#30446;&#26631;&#29992;&#25143;&#23637;&#31034;&#30340;&#32593;&#39029;&#27880;&#20837;&#24694;&#24847;&#33050;&#26412;&#26469;&#23454;&#29616;&#36825;&#31181;&#25915;&#20987;&#12290;&#36825;&#31181;&#25915;&#20987;&#21487;&#33021;&#28041;&#21450;&#31363;&#21462;cookie&#12289;&#21163;&#25345;&#20250;&#35805;&#25110;&#23436;&#20840;&#25511;&#21046;&#21463;&#24863;&#26579;&#32593;&#31449;&#19978;&#30340;&#21463;&#23475;&#32773;&#27983;&#35272;&#22120;&#20132;&#20114;&#12290;<\/p><h2>&#12298;&#29983;&#21270;&#21361;&#26426;&#12299;&#20013;&#30340;&#36867;&#29983;&#30340;&#37325;&#35201;&#24615;<\/h2><p>&#36867;&#36920;&#26159;&#25351;&#23558;&#21363;&#23558;&#24341;&#20837;&#21040;HTML&#36755;&#20986;&#20013;&#30340;&#25968;&#25454;&#35270;&#20026;&#32431;&#25991;&#26412;&#30340;&#34892;&#20026;&#12290;&#36890;&#36807;&#36825;&#31181;&#26041;&#24335;&#65292;&#25968;&#25454;&#20013;&#21487;&#33021;&#21253;&#21547;&#30340;&#28508;&#22312;HTML&#21644;JavaScript&#19981;&#20250;&#34987;&#27983;&#35272;&#22120;&#25191;&#34892;&#65292;&#20174;&#32780;&#38477;&#20302;&#20102;XSS&#25915;&#20987;&#30340;&#39118;&#38505;&#12290;<\/p><h3>&#20351;&#29992;&#33457;&#25324;&#21495;<\/h3><p>&#20992;&#29255;&#27169;&#26495;&#33258;&#21160;&#20351;&#29992;&#21452;&#22823;&#25324;&#21495;&#26469;&#36867;&#36991;&#25968;&#25454;&#65292;&#36825;&#20250;&#35302;&#21457;&#30456;&#24212;&#30340;&#22788;&#29702;&#12290;<code>htmlspecialchars<\/code>PHP &#20989;&#25968;&#65306;<\/p><pre><code>{{ raw_html_variable }}<\/code><\/pre><p>&#36825;&#31181;&#35821;&#27861;&#23558;&#29305;&#27530;&#23383;&#31526;&#36716;&#25442;&#20026;HTML&#23454;&#20307;&#12290;&#20363;&#22914;&#65306;<\/p><pre><code>&lt;script&gt;alert('Hello, world!')&lt;\/script&gt;<\/code><\/pre><p>&#34987;&#28210;&#26579;&#20026;&#65306;<\/p><pre><code>&amp;lt;script&amp;gt;alert('Hello, world!')&amp;lt;\/script&amp;gt;<\/code><\/pre><p>&#22240;&#27492;&#38450;&#27490;&#33050;&#26412;&#25191;&#34892;&#12290;<\/p><h3>&#36991;&#20813;&#33258;&#21160;&#36867;&#36920;<\/h3><p>&#26377;&#26102;&#65292;&#20320;&#38656;&#35201;&#20174;&#21464;&#37327;&#20013;&#28210;&#26579;HTML&#12290;&#22312;Blade&#35821;&#27861;&#20013;&#65292;&#36825;&#31181;&#20570;&#27861;&#30053;&#26377;&#19981;&#21516;&#65292;&#20351;&#29992;{!! &#21644; !!}&#65306;<\/p><pre><code>{!! raw_html_variable !!}<\/code><\/pre><p>&#35831;&#27880;&#24847;&#65292;&#21482;&#26377;&#22312;&#24744;&#30830;&#23450;&#20869;&#23481;&#19981;&#21253;&#21547;&#29992;&#25143;&#29983;&#25104;&#36755;&#20837;&#25110;&#24050;&#36890;&#36807;HTML Purifier&#31561;&#36807;&#28388;&#24211;&#36827;&#34892;&#20928;&#21270;&#21518;&#65292;&#25165;&#33021;&#20351;&#29992;&#27492;&#21151;&#33021;&#12290;<\/p><h2>&#22312; Blade Directives &#20013;&#36867;&#33073;&#12290;<\/h2><p>Laravel Blade&#36824;&#25552;&#20379;&#20102;&#21508;&#31181;&#25511;&#21046;&#32467;&#26500;&#25351;&#20196;&#12290;&#22312;&#20351;&#29992;&#36825;&#20123;&#21160;&#24577;&#20869;&#23481;&#26102;&#65292;&#30830;&#20445;&#20320;&#20063;&#20687;&#22788;&#29702;&#21407;&#22987;PHP&#19968;&#26679;&#36827;&#34892;&#36755;&#20986;&#30340;&#36716;&#20041;&#65306;<\/p><pre><code>@foreach ($users as $user)\n    &lt;li&gt;{{ $user-&gt;name }}&lt;\/li&gt;\n@endforeach<\/code><\/pre><p>&#36825;&#36866;&#29992;&#20110;&#20219;&#20309;&#31867;&#22411;&#30340;&#25351;&#20196;&#36755;&#20986;&#12290;<\/p><h2>&#26174;&#31034;&#26410;&#36716;&#20041;&#30340;&#25968;&#25454;<\/h2><p>&#24403;&#25968;&#25454;&#23433;&#20840;&#26080;&#34398;&#19988;&#19981;&#24212;&#34987;&#33073;&#36867;&#26102;&#65292;Laravel Blade &#25552;&#20379;&#20102;&#30456;&#24212;&#30340;&#36873;&#39033;&#65288;&#22914;&#21069;&#25152;&#36848;&#65289;&#12290;&#19981;&#36807;&#65292;&#36825;&#38656;&#35201;&#20877;&#27425;&#24378;&#35843;&#65306;&#22312;&#22788;&#29702;&#27492;&#31867;&#24773;&#20917;&#26102;&#21153;&#24517;&#26497;&#20854;&#23567;&#24515;&#12290;<code>{!! !!}<\/code>&#35821;&#27861;&#65292;&#22240;&#20026;&#23427;&#20250;&#31934;&#30830;&#22320;&#21576;&#29616;&#25552;&#20379;&#30340;&#23383;&#31526;&#20018;&#30340;&#20869;&#23481;&#12290;<\/p><h2>&#33258;&#23450;&#20041; Blade &#25351;&#20196;<\/h2><p>&#22914;&#26524;&#20320;&#21457;&#29616;&#33258;&#24049;&#39057;&#32321;&#38656;&#35201;&#20197;&#26576;&#31181;&#26041;&#24335;&#22788;&#29702;&#20869;&#23481;&#65292;Laravel &#20801;&#35768;&#24744;&#23450;&#20041;&#33258;&#23450;&#20041;&#25351;&#20196;&#26469;&#22788;&#29702;&#20869;&#23481;&#30340;&#36716;&#20041;&#65306;<\/p><pre><code>Blade::directive('escapeJs', function ($expression) {\n    return \"&lt;?php echo htmlentities(' . $expression . ', ENT_QUOTES, 'UTF-8') ?&gt;\";\n});<\/code><\/pre><p>&#29616;&#22312;&#20320;&#21487;&#20197;&#20351;&#29992;&#20102;&#12290;<code>@escapeJs($javascriptVariable)<\/code>&#23433;&#20840;&#22320;&#23384;&#20648;&#22312;&#20320;&#30340;Blade&#27169;&#26495;&#20013;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#36890;&#36807;&#38450;&#27490;XSS&#25915;&#20987;&#26469;&#20445;&#25252;&#24744;&#30340;web&#24212;&#29992;&#31243;&#24207;&#26159;&#38750;&#24120;&#37325;&#35201;&#30340;&#37096;&#20998;&#12290;&#24184;&#36816;&#30340;&#26159;&#65292;Laravel Blade&#25552;&#20379;&#20102;&#19968;&#31181;&#31616;&#21333;&#32780;&#24378;&#22823;&#30340;&#26426;&#21046;&#26469;&#22788;&#29702;&#21487;&#33021;&#26377;&#23475;&#30340;&#20869;&#23481;&#30340;&#36716;&#20041;&#12290;&#36890;&#36807;&#36716;&#20041;&#21361;&#38505;&#30340;HTML&#21644;JavaScript&#65292;&#24744;&#23558;&#26377;&#21161;&#20110;&#30830;&#20445;&#24212;&#29992;&#31243;&#24207;&#30340;&#23436;&#25972;&#24615;&#21644;&#23433;&#20840;&#24615;&#12290;<\/p><p>&#22987;&#32456;&#35760;&#20303;&#65292;&#36807;&#28388;&#21644;&#36716;&#20041;&#25152;&#26377;&#29992;&#25143;&#29983;&#25104;&#30340;&#20869;&#23481;&#65292;&#21482;&#26377;&#22312;&#20320;&#23436;&#20840;&#25511;&#21046;&#21644;&#20449;&#20219;&#35201;&#26174;&#31034;&#30340;&#20869;&#23481;&#26102;&#25165;&#24212;&#36339;&#36807;&#20869;&#32622;&#30340;&#36716;&#20041;&#12290;&#29282;&#35760;&#36825;&#20123;&#23454;&#36341;&#21487;&#20197;&#30830;&#20445;&#24744;&#30340;Web&#24212;&#29992;&#31243;&#24207;&#30340;&#23433;&#20840;&#24615;&#21644;&#21487;&#38752;&#24615;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>Laravel Blade &#26159; Laravel &#26694;&#26550;&#30340;&#19968;&#37096;&#20998;&#65292;&#29992;&#20110;&#29983;&#25104;&#21644;&#28210;&#26579;&#35270;&#22270;&#65288;&#21363; HTML &#39029;&#38754;&#65289;&#12290;&#23427;&#20801;&#35768;&#24320;&#21457;&#32773;&#20351;&#29992;&#27169;&#26495;&#35821;&#35328;&#26469;&#21019;&#24314;&#21160;&#24577;&#32593;&#39029;&#12290;&#28982;&#32780;&#65292;&#30001;&#20110; HTML &#21644; JavaScript &#30340;&#22797;&#26434;&#24615;&#65292;&#23427;&#20204;&#21487;&#33021;&#20250;&#21253;&#21547;&#19968;&#20123;&#28508;&#22312;&#30340;&#23433;&#20840;&#39118;&#38505;&#12290;&#19979;&#38754;&#26159;&#22914;&#20309;&#36991;&#20813;&#36825;&#20123;&#39118;&#38505;&#30340;&#19968;&#20123;&#24314;&#35758;&#12290;<\/p>\n<h3>1. &#36991;&#20813;&#25935;&#24863;&#20449;&#24687;&#26292;&#38706;<\/h3>\n<p>&#30830;&#20445;&#25152;&#26377;&#36755;&#20837;&#25968;&#25454;&#37117;&#32463;&#36807;&#23433;&#20840;&#36807;&#28388;&#22120;&#22788;&#29702;&#65292;&#22914; <code>Str::str()<\/code>, <code>Str::contains()<\/code> &#31561;&#12290;&#20363;&#22914;&#65306;<\/p>\n<pre><code class=\"language-php\">$input = 'my-secret';\nif (Str::contains($input, 'secret')) {\n    \/\/ &#22788;&#29702;&#25935;&#24863;&#20449;&#24687;\n}<\/code><\/pre>\n<h3>2. &#20351;&#29992;&#38450;XSS&#25915;&#20987;&#26041;&#27861;<\/h3>\n<ul>\n<li><strong>HTML&#29305;&#27530;&#23383;&#31526;&#26367;&#25442;<\/strong>&#65306;&#36890;&#36807;&#23558; <code>&lt;<\/code> &#26367;&#25442;&#20026; <code>&amp;lt;<\/code>&#65292;&#23558; <code>&gt;<\/code> &#26367;&#25442;&#20026; <code>&amp;gt;<\/code>&#65292;&#23558; <code>&amp;amp;<\/code> &#26367;&#25442;&#20026; <code>&amp;amp;amp;<\/code> &#31561;&#65292;&#21487;&#20197;&#38450;&#27490; XSS &#25915;&#20987;&#12290;<\/li>\n<\/ul>\n<pre><code class=\"language-html\">&lt;input type=\"text\" value=\"{{ $input }}\" \/&gt;<\/code><\/pre>\n<ul>\n<li><strong>&#32534;&#30721;&#29305;&#27530;&#23383;&#31526;<\/strong>&#65306;&#20351;&#29992; htmlspecialchars &#25110; htmlentities &#20989;&#25968;&#23545;&#29305;&#27530;&#23383;&#31526;&#36827;&#34892;&#32534;&#30721;&#36716;&#25442;&#65292;&#30830;&#20445;&#23427;&#20204;&#19981;&#20250;&#34987;&#27983;&#35272;&#22120;&#35299;&#26512;&#20026;&#24694;&#24847;&#20195;&#30721;&#12290;<\/li>\n<\/ul>\n<pre><code class=\"language-php\">echo htmlspecialchars('Special characters', ENT_QUOTES | ENT_SUBSTITUTE);<\/code><\/pre>\n<h3>3. &#38450;&#27490;&#36328;&#31449;&#35831;&#27714;&#20266;&#36896;&#65288;CSRF&#65289;<\/h3>\n<p>&#20026;&#20102;&#36991;&#20813; CSRF &#25915;&#20987;&#65292;&#21487;&#20197;&#20351;&#29992;&#20197;&#19979;&#26041;&#27861;&#20043;&#19968;&#65306;<\/p>\n<ul>\n<li><strong>&#20351;&#29992;&#20196;&#29260;&#39564;&#35777;<\/strong>&#65306;&#22312;&#21069;&#31471;&#21644;&#21518;&#31471;&#20043;&#38388;&#20256;&#36882;&#20196;&#29260;&#65292;&#24182;&#22312;&#38656;&#35201;&#26102;&#39564;&#35777;&#20854;&#26377;&#25928;&#24615;&#12290;<\/li>\n<\/ul>\n<pre><code class=\"language-php\">\/\/ &#22312;&#25511;&#21046;&#22120;&#20013;\nprotected function validateCsrfToken()\n{\n    if ($this-&gt;request-&gt;isMethod('POST') &amp;&amp; $this-&gt;csrfToken != csrf_token()) {\n        throw new CsrfException();\n    }\n}\n\n\/\/ &#22312;&#25511;&#21046;&#22120;&#26041;&#27861;&#20013;\npublic function store(Request $request)\n{\n    $this-&gt;validateCsrfToken();\n\n    \/\/ &#27491;&#24120;&#25805;&#20316;\n}<\/code><\/pre>\n<h3>4. &#36991;&#20813;SQL&#27880;&#20837;<\/h3>\n<ul>\n<li><strong>&#21442;&#25968;&#21270;&#26597;&#35810;<\/strong>&#65306;&#20351;&#29992;&#39044;&#32534;&#35793;&#35821;&#21477;&#21644;&#21442;&#25968;&#21270;&#26597;&#35810;&#26469;&#36991;&#20813; SQL &#27880;&#20837;&#12290;<\/li>\n<\/ul>\n<pre><code class=\"language-sql\">$sth = $conn-&gt;prepare(\"SELECT * FROM users WHERE id=?\");\n$sth-&gt;execute([1]);<\/code><\/pre>\n<h3>5. &#22987;&#32456;&#26356;&#26032; Blade &#27169;&#26495;<\/h3>\n<p>&#22987;&#32456;&#26816;&#26597;&#24182;&#26356;&#26032; Blade &#27169;&#26495;&#20013;&#30340;&#26631;&#31614;&#21644;&#34920;&#36798;&#24335;&#65292;&#20197;&#36991;&#20813;&#22240;&#26087;&#29256;&#26412;&#38169;&#35823;&#32780;&#24341;&#36215;&#30340;&#28508;&#22312;&#38382;&#39064;&#12290;<\/p>\n<pre><code class=\"language-blade\">{{ $message }}<\/code><\/pre>\n<p>&#20197;&#19978;&#26159;&#19968;&#20123;&#22522;&#26412;&#30340;&#24314;&#35758;&#65292;&#24110;&#21161;&#24744;&#22312; Laravel Blade &#20013;&#20943;&#23569;&#28508;&#22312;&#30340;&#23433;&#20840;&#28431;&#27934;&#12290;&#35831;&#27880;&#24847;&#65292;&#36825;&#20165;&#26159;&#22522;&#26412;&#25351;&#21335;&#65292;&#23454;&#38469;&#24212;&#29992;&#20013;&#21487;&#33021;&#38656;&#35201;&#26681;&#25454;&#20855;&#20307;&#22330;&#26223;&#21644;&#38656;&#27714;&#36827;&#19968;&#27493;&#20248;&#21270;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22312; Laravel Blade &#27169;&#26495;&#24341;&#25806;&#20013;&#65292;&#23433;&#20840;&#26159;&#33267;&#20851;&#37325;&#35201;&#038;#303..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-761","my1js","type-my1js","status-publish","hentry","my1js2nav-laravel"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/761","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=761"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=761"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=761"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=761"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}