Paradox
3 سال پیش توسط Paradox مطرح شد
26 پاسخ

از بین بردن Html injection در فرم ورودی

سلام دوستان برای از بین بردن Html injection تو فرم ثبت نام چیکار باید کرد ؟
اکه کاربری تگ html یا js نوشت نمیخام ثبت نام شه یا ندید گرفته شه و به همراه تگ ثبت نام نشه
من به این شکل ثبت نام انجام دادم و اطلاعات تو دیتابیس ذخیره شد
مشکل


ثبت پرسش جدید
amir
تخصص : بک اند و فرانت اند
@behzadi 3 سال پیش آپدیت شد
0

سلام از تابع زیر استفاده کنین تگ ها رو از بین میبره :

strip_tags()

Paradox
تخصص : در حال یادگیری
@paradox 3 سال پیش مطرح شد
0

@behzadi
ممنون از شما
کدوم قسمت باید وارد کنم ؟


amir
تخصص : بک اند و فرانت اند
@behzadi 3 سال پیش مطرح شد
0

جایی که دارید اطلاعات رو از کاربر میگیرید


amir
تخصص : بک اند و فرانت اند
@behzadi 3 سال پیش مطرح شد
0

شما اطلاعات کار بر رو بهش پاس میدین مثلا نام رو بعدش اون میاد تگ های html رو ازش ور میداره بعد میتونین اون رو در یک متغیر بریزین و ازش استفاده کنین


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش مطرح شد
-1

سلام می توانید از تابع htmlspecialchars استفاده کنید. مانند:

$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;

این تابع html رو به یکسری special character ها تبدیل می کند و این کاراکتر ها توسط مرورگر اجرا نمی شوند.
اگر از لاراول استفاده می کند در بلید به این صورت استفاده کنید دیگر این خطا حل می شود.

{{  $value }}

@wxyz


Paradox
تخصص : در حال یادگیری
@paradox 3 سال پیش مطرح شد
0

بله از لاراول استفاده میکنم
کدوم قسمت باید از این مقدار استفاده کنم ؟ داخل input ها ؟

{{ $value }}

@websaz


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش مطرح شد
0

نه وقتی که دارید نمایش می دهید به این شکل :{{ $user->name }} البته 99 درصد اوقات از این روش استفاده می شود ( فقط وقتی از نوع نمایش {!! !!} استفاده می کنیم که دارید از ادیتوری مثل ckeditor استفاده می کنیم).


Paradox
تخصص : در حال یادگیری
@paradox 3 سال پیش مطرح شد
0

موقع نمایش بله میدونم
فقط مشکلی وجود نداره کاربر به این شکل ثبت نام کنه ؟
نباید خطایی برای کاربر فرستاده شه؟


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش مطرح شد
0

سلام
مشکل امنیتی پیش نمی آید اگر اینجوری ذخیره شود . مهم این است که موقع خواندن اطلاعات کد های html یا script ها خوانده نشود .
که دوستان راه حلش را فرمودند


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش آپدیت شد
0

به سختی میشه از ورود این اطلاعات به دیتابیس جلو گیری کرد مهم بی اثر کردن این نوع از حملات هست بعد ادمین وقتی می بینه یکسری کاراکتر بی معنی هست می فهمه کاربر الکی هست. بعد می تواند حذف کند یا یک ایمیل از طرف پشتیبانی به کاربر برای اعتبار سنجی ایمیل بفرستد.
@wxyz


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش آپدیت شد
0

@websaz
خیر دوست عزیز
ممکن است حملات xxs صورت بگیرد . و کاربر script های خطرناکی را بنویسد و به نوعی تزریق کد انجام دهد .
تنها راهش راهش هم استفاده از htmlspecialchars و مشابه آن است ...


amir
تخصص : بک اند و فرانت اند
@behzadi 3 سال پیش مطرح شد
0

خب دوست عزیز اگه نمیخای این اطلاعات وارد دیتابیس بشن از همون تابع که گفتم استفاده کن!!!!


Paradox
تخصص : در حال یادگیری
@paradox 3 سال پیش مطرح شد
0

چجوری میشه جلوی حملات xxs رو گرفت ؟
@gomnam


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش آپدیت شد
1

@gomnam
وقتی در لاراول هیچ چیزی به جز یکسر کاراکتر مثل &lt;a href='test'&gt;Test&lt;/a&gt; نمایش داده می شه xss وجود ندارد.


Paradox
تخصص : در حال یادگیری
@paradox 3 سال پیش مطرح شد
0

@behzadi
توی لاراول کدوم قسمت باید اضافه کنم ؟
بلید یا کنترلر ؟


Paradox
تخصص : در حال یادگیری
@paradox 3 سال پیش مطرح شد
0

@behzadi
توی لاراول کدوم قسمت باید اضافه کنم ؟
بلید یا کنترلر ؟


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش مطرح شد
0

@websaz
بله در لاراول مشکلی پیش نمیاد ...


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش مطرح شد
1

لاراول از همه ی باگ ها بجز اشتباهات برنامه نویس ها جلو گیری می کنه . شما سعی کنید طبق مستندات لاراول جلو برید و سعی کنید تا حد امکان از خطای انسانی جلوگیری کنید.
@wxyz


amir
تخصص : بک اند و فرانت اند
@behzadi 3 سال پیش آپدیت شد
1

دوست عزیز شما وقتی دیتا رو از کاربر میگیری اون رو داخل یک متغیر به نامه مثلا $data ریختی بعد این رو بریز تو تابع

strip-tags($data)

وقتی این کار رو کردی دوباره این ها رو بریز تو $data و این الان دیتای اورجینال هستش و این رو بریز تو دیتابیس


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش مطرح شد
0

@behzadi این روش برای از بین بردن چند تگ html هست و امنیت کاملی ندارد. سایت راکت ( به دلیل استفاده از لاراول ) از همین سیستم استفاده می کند پس اگر من یک کد html اینجا وارد کنم به شکل متن در می اید.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام