7 نکته کلیدی برای ایمن سازی لاراول

سعید ناصریسعید ناصریآوریل 16, 20202min0

تیم قدرتمند Laravel & # 39؛ همیشه در نسخه های مختلف خود ، به ویژه 5 ، بسیاری از ویژگی های امنیتی را پیش بینی کرده است و دائما در حال به روز رسانی است. با این حال ، هنوز راه هایی برای استفاده از آن وجود دارد ، و اگر به آنها توجه نکنید ، ممکن است پروژه لاراول شما به خطر بیفتد. در این مقاله ، ضمن توضیح ویژگی های امنیتی لاراول ، در اینجا 7 نکته طلایی برای امنیت و بهبود امنیت لاراول آورده شده است ، چگونه می توانیم لاراول را ایمن تر و مطمئن تر کنیم.

Laravel Host یک میزبان حرفه ای لینوکس با پشتیبانی Laravel است

1- از حملات تزریق SQL جلوگیری کنید

از آنجا که Laravel به طور پیش فرض از PDO برای اجرای نمایش داده های پایگاه داده استفاده می کند ، تا حد زیادی ورودی را بررسی می کند و از عدم تزریق متغیرهای ناخواسته اطمینان می دهد. اما بعضی اوقات برخی از توسعه دهندگان می خواهند به جای PDO از روش اولیه DB :: استفاده کنند ، در این صورت PDO دیگر نمی تواند به اندازه قبل از تزریق متغیر ناخواسته قابل اعتماد باشد. اینجاست که لاراول در برابر SQL Injection آسیب پذیر می شود.
کاربران معمولاً از مثال زیر در این بخش استفاده می کنند:

Route :: get (& # 39؛ sql-injection-vulnerable & # 39 ؛، function ()
$ name = "& # 39؛ بابی & # 39؛ یا 1 = 1"؛
Return DB :: انتخاب (
DB :: خام ("SELECT * از گربه ها که نام = $ نام دارد"))؛
})؛

اما برای تأمین امنیت آن ، لازم است با جایگزین کردن پارامترها با علامت سؤال (؟) همانطور که در شکل زیر آمده است ، مثال بالا را بازنویسی کنید. در این روش مقادیر موجود در یک آرایه به عنوان روش دوم و خام به بانک اطلاعاتی ارسال می شود:

Route :: get (& # 39؛ sql-injection-not радуار و آسیب پذیر & # 39 ؛، عملکرد ()
$ name = "& # 39؛ بابی & # 39؛ یا 1 = 1"؛
Return DB :: انتخاب (
DB :: خام ("SELECT * از گربه ها که نام =؟" ، (نام $)))؛
})؛

2- فعال سازی پروتکل SSL و HTTPS

ما قبلاً در مقالات دیگر به اهمیت استفاده از پروتکل HTTPS اشاره کرده ایم:

درباره SSL و تأثیرات آن در وب سایت بیشتر بخوانید

آخرین مهلت Google & # 39 را برای فعال کردن https و SSL بخوانید

هنگامی که وب سایت خود را بر روی یک پلت فرم HTTP توسعه می دهید ، هر اطلاعات کمی در سرور و شبکه تماس با متن ساده و قابل فهم ارسال می شود. بنابراین یک هکر می تواند اطلاعات دریافتی از سرور را تشخیص داده و سوء استفاده کند. تنها راه جلوگیری از بروز این امر ، دریافت گواهینامه SSL و فعال سازی پروتکل HTTPS است.

گواهی SSL برای خرید و خرید گواهی SSL کلیک کنید

قابل توجه است که طبق الگوریتم های جدید موتور جستجو مانند گوگل ، وب سایت های دارای HTTPS از اهمیت بالاتری برخوردارند و سئو قوی تری دارند. بنابراین شما آن را با فلش نشان می دهید. امنیت و ارتقاء سئو را فراهم کنید.

با تهیه یک گواهی SSL و فعال کردن HTTPS ، باید از فیلتر نمونه زیر استفاده کنید تا کاربران خود را به پروتکل امن HTTPS هدایت کنید:

Route :: filter (& # 39؛ https & # 39 ؛، function ()
if (! درخواست :: امن ())
Return Redirect :: safe (URI :: فعلی ())؛
})؛

3- از حملات XSS جلوگیری کنید

حمله XSS هنگامی رخ می دهد که مثلاً یک مهاجم بتواند کد JavaScript را در صفحه ای که کاربران مشاهده می کنند قرار دهد. فرض کنید در صفحه وب سایت یک فرم وجود دارد که نام ، نام و نام خانوادگی شما را درخواست می کند. حال اگر مهاجم کد جاوا اسکریپت را در قسمت نام و نام خانوادگی در زیر قرار داده و دکمه Submitt را اعمال کند. کد در سایر کاربران آنلاین اجرا می شود & # 39؛ صفحات ، و در مثال ما ، پیام هک وب سایت & 39 به کاربران وب سایت نمایش داده می شود:

این سوراخ امنیتی نه تنها به عنوان مثال می تواند یک جمله را با محتوای منفی و بسیار بد نمایش دهد بلکه می تواند تلاشی برای اتصال به سرورهای دیگر برای سایر اقدامات مخرب باشد. بنابراین اگر دوباره از Laravel استفاده می کنید ، کد (مقدار variable $ متغیر. در) را در قسمت مقدار وارد کنید.
فقط زمان از کد {!! متغیر $ !! sure اطمینان حاصل کنید که محتوای فیلد برای عموم نمایش داده می شود.

موثرترین روش برای مقابله با حمله ، ایجاد یک علامت Token در هر بار نمایش فرم است که هنگام ارسال ، بررسی و تنظیم می شود. فرم: باز و فرم :: مدل هر دو به طور خودکار وارد یک پنهان _token می شوند ، و middleware هنگام ثبت اطلاعات ، ارزش این توکن را مطابقت می دهد. اگر توکن همان اطلاعات ارسال شده باشد ، در غیر اینصورت از ارسال اطلاعات و در نتیجه اجرای کد تزریق شده در فرم جلوگیری می شود.

البته لاراول در نسخه 5 به طور خودکار از این بخش ایمن شده است ، بنابراین اگر فرم بخواهد اطلاعات را به بانک اطلاعاتی ارسال کند یا خروجی در قالب HTML باشد ، کد نمونه ما را به شرح زیر ارسال می کند ، که در واقع متنی بدون کارایی است. . اجرایی:

& lt؛ اسکریپت & gt؛ هشدار ("شما هک شده اید") & lt؛ / اسکریپت & gt؛

برای اطلاعات بیشتر در مورد این بروزرسانی به این لینک مراجعه کنید.

4- استفاده از هدرهای امنیتی Laravel

توصیه می شود از هدرهای امنیتی Laravel & # 39 در GitHub استفاده کنید. با مراجعه به لینک زیر لیستی از هدرها و نحوه نصب و اضافه کردن آنها به لاراول را مشاهده خواهید کرد.
هدرهای امنیتی Laravel در GitHub
پس از نصب و افزودن هدرهای امنیتی ، آزمایش نتایج را در مرورگر فراموش نکنید. برای انجام این کار ، حتی می توانید برای آزمایش روند به لینک زیر مراجعه کنید:
تست هدر امنیتی

5- استفاده از واگذاری انبوه با ملاحظات امنیتی

تعیین تکلیف یک ویژگی ساده است که به ما امکان می دهد یک مدل خاص برای ورودی فرم ایجاد کنیم. در این حالت ، لازم نیست که برای هر مقدار بطور جداگانه اعمال کنیم.
اگر از این ویژگی در برنامه یا وب سایت خود استفاده کرده اید ، باید مراقب ملاحظات امنیتی آن باشید ، در غیر این صورت هکر می تواند فرم را در سمت کاربر تغییر داده و ورودی جدیدی به آن اضافه کند:

در حقیقت از کد زیر برای ایجاد مدل بعد از فرم ارسال استفاده می شود:

گربه :: ایجاد (درخواست :: همه ())

البته به لطف آرایه قابل پر کردن $ $ ، می توانید یک لیست سفید حاوی فیلدهایی ایجاد کنید که با استفاده از ویژگی واگذاری انبوه قابل پر کردن است. در مقابل ، می توانید از ویژگی محافظت شده $ برای ایجاد یک لیست سیاه که شامل زمینه هایی است که نمی توانند از ویژگی واگذاری انبوه استفاده کنند ، استفاده کنید.

6- محافظت در برابر CSRF (جعل درخواست درخواست سایت)

در بخش پایانی پیشنهادی برای جلوگیری از حملات XSS ارائه دادیم و آن این بود که از Token برای اعتبار بخشیدن به فیلدهای ورودی فرم استفاده کنید.
اگر برای ایجاد فرم از قالب های Blade در بستر HTML استفاده کرده اید ، اگرچه این روش توصیه نمی شود ، اما اکنون که از آن استفاده کرده اید ، برای استفاده از ویژگی توکن CSRF باید از کد زیر به شکل زیر استفاده کنید:

و !! csrf_field () !!}

اما اگر از روش پیشنهادی LaravelCollective / html برای ایجاد فرم استفاده می کنید و Laravel شما نسخه 5 است ، خوشحال باشید. این امر به این دلیل است که توکن CSRF بطور خودکار فعال می شود و فرایند لازم را در اعتبار ورودی ها انجام می دهد.

7- استفاده از دستگاه تصفیه لاراول

HTML HTML یک پرونده html خام است که از تگ هایی استفاده می کند که در هیچ یک از زبان های برنامه نویسی مشخص مشخص نشده است. بنابراین ، احتمال محتوای مخرب این نوع پرونده بسیار زیاد است. پسوندهای این پرونده معمولاً یکی از موارد asp ، .php ، .aspx ، .cfs است.
توصیه می شود از لاراول تمیز کننده استفاده کنید تا از بروز چنین فایل هایی در وب سایت خود جلوگیری کنید. در این حالت پرونده های حاوی کد ناشناخته و مخرب شناسایی و حذف می شوند.
برای کسب اطلاعات بیشتر در مورد تصفیه کننده HTML Laravel ، به لینک زیر مراجعه کنید:
تصفیه کننده-امنیتی

منابع

یک نظر بدهید

ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت گذاری شده اند *

یک × دو =