আরও ব্যাখ্যা যুক্ত করতে, ব্লেড {{ }}
স্টেটমেন্টগুলির মধ্যে কোড htmlspecialchars()
পিএইচপি সরবরাহ করে ফাংশনটির মাধ্যমে স্বয়ংক্রিয়ভাবে পাস হয়ে যায় । এই ফাংশনটি একটি স্ট্রিং নেয় এবং HTML ব্যবহার করে এমন সমস্ত সংরক্ষিত অক্ষর খুঁজে পেতে পারে। সংরক্ষিত অক্ষর &
<
>
এবং "
। এরপরে এই সংরক্ষিত অক্ষরগুলি তাদের HTML সত্তা বৈকল্পিকের সাথে প্রতিস্থাপন করবে। যা নিম্নলিখিত:
|---------------------|------------------|
| Character | Entity |
|---------------------|------------------|
| & | & |
|---------------------|------------------|
| < | < |
|---------------------|------------------|
| > | > |
|---------------------|------------------|
| " | " |
|---------------------|------------------|
উদাহরণস্বরূপ, ধরে নিন আমাদের নীচের পিএইচপি বিবৃতি রয়েছে:
$hello = "<b>Hello</b>";
{{ $hello }}
আপনি যে আক্ষরিক স্ট্রিংটি পেয়েছিলেন ফলক হিসাবে ফলক হিসাবে প্রবেশ করেছে:
<b>Hello</b>
ফণা অধীনে, এটি আসলে হিসাবে প্রতিধ্বনিত হবে <b>Hello<b>
আমরা যদি এটিকে বাইপাস করতে এবং প্রকৃতপক্ষে এটিকে একটি সাহসী ট্যাগ হিসাবে উপস্থাপন করতে চাই, htmlspecialchars()
তবে এস্কেপ সিনট্যাক্স ব্লেড সরবরাহ করে আমরা ফাংশনটি থেকে রক্ষা পাই :
{!! $hello !!}
মনে রাখবেন যে আমরা কেবল একটি কোঁকড়া ধনুর্বন্ধনী ব্যবহার করি।
উপরের ফলাফল আউট হবে:
হ্যালো
আমরা পিএইচপি সরবরাহ করে এমন একটি হ্যান্ডি ফাংশনও ব্যবহার করতে পারি যা html_entity_decode()
ফাংশন। এটি এইচটিএমএল সত্তাকে তাদের সম্মানিত এইচটিএমএল অক্ষরে রূপান্তরিত করবে। এটিকে বিপরীত হিসাবে ভাবেনhtmlspecialchars()
উদাহরণস্বরূপ বলুন যে আমাদের নিম্নলিখিত পিএইচপি বিবৃতি রয়েছে:
$hello = "<b> Hello <b>";
আমরা এখন আমাদের পালানো ব্লেডের বিবৃতিতে এই ফাংশনটি যুক্ত করতে পারি:
{!! html_entity_decode($hello) !!}
এটি এইচটিএমএল সত্তা নেবে <
এবং এটিকে এইচটিএমএল কোড হিসাবে পার্স করবে <
, কেবল একটি স্ট্রিং নয়।
সত্তার চেয়ে বৃহত্তর ক্ষেত্রে একই প্রযোজ্য >
যে ফলন হবে
হ্যালো
প্রথম স্থানে পালানোর পুরো বিষয়টি হ'ল এক্সএসএস আক্রমণ এড়ানো। সুতরাং এস্কেপ সিনট্যাক্স ব্যবহার করার সময় খুব সতর্কতা অবলম্বন করুন, বিশেষত যদি আপনার অ্যাপ্লিকেশনটিতে ব্যবহারকারীরা এইচটিএমএল নিজেরাই সরবরাহ করে থাকেন তবে তারা নিজেরাই নিজের কোডটি তাদের পছন্দমতো ইনজেক্ট করতে পারে।
{!! nl2br($post->description) !!}
আমার জন্য যদি আমার কেবল ফাঁকা জায়গা এবং br থাকে তবে কাজ করে।