راکت
Paradox
Paradox
توسط Paradox مطرح شد
26 پاسخ

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

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


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

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

strip_tags()

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

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


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

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


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

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


سبحان مولایی
سبحان مولایی
تخصص : برنامه‌نویس وب: Python :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native
@websaz5 سال پیشمطرح شد
-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
تخصص :در حال یادگیری
@paradox5 سال پیشمطرح شد
0

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

{{ $value }}

@websaz


سبحان مولایی
سبحان مولایی
تخصص : برنامه‌نویس وب: Python :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native
@websaz5 سال پیشمطرح شد
0

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


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

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


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

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


سبحان مولایی
سبحان مولایی
تخصص : برنامه‌نویس وب: Python :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native
@websaz5 سال پیشمطرح شد
0

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


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

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


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

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


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

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


سبحان مولایی
سبحان مولایی
تخصص : برنامه‌نویس وب: Python :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native
@websaz5 سال پیشمطرح شد
1

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


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

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


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

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


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

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


سبحان مولایی
سبحان مولایی
تخصص : برنامه‌نویس وب: Python :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native
@websaz5 سال پیشمطرح شد
1

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


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

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

strip-tags($data)

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


سبحان مولایی
سبحان مولایی
تخصص : برنامه‌نویس وب: Python :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native
@websaz5 سال پیشمطرح شد
0

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


صفحه 1 از 2

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

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