-
August 22nd, 2017, 22:42
#1
جریان esc_html و esc_attr چیه؟
سلام و درود
میدونم که esc_html رشته رو برای قرارگیری توی بلوک های HTML آماده میکنه و esc_attr هم رشته رو برای قرارگیری توی اتربیوت های HTML آماده میکنه.
ولی خوب رشته رو بدون این دو تابع هم قرار بدی توی HTML اتفاق خاصی نمیوفته و همه چیز درسته.
سوالم اینه که این دو تابع چه موقع هایی کاربرد دارند و باید استفاده بشن؟
تشکر
-
-
August 22nd, 2017 22:42
# ADS
-
August 23rd, 2017, 00:44
#2
عضو دائم
پاسخ : جریان esc_html و esc_attr چیه؟
سلام escaping برای جلوگیری از نمایش داده های ناخواسته است که باعث جلوگیری از حملات XSS یا تزریق کد های مخرب در دیتابیس می شود، میتوانید خروجی این تابع ها را در سورس صفحه با ورودی ای که با آن دادید مقایسه کنید.
-
تعداد تشکر ها ازT.Toosi به دلیل پست مفید
-
August 23rd, 2017, 01:18
#3
پاسخ : جریان esc_html و esc_attr چیه؟

نوشته اصلی توسط
T.Toosi
سلام escaping برای جلوگیری از نمایش داده های ناخواسته است که باعث جلوگیری از حملات XSS یا تزریق کد های مخرب در دیتابیس می شود، میتوانید خروجی این تابع ها را در سورس صفحه با ورودی ای که با آن دادید مقایسه کنید.
والا من تست کردم ولی تغییری ندیدم.
شاید متن من کاراکتر های خاصی که این توابع روشون کار میکنند رو ندارن.
مثلا متن که به esc_html میدم یه متن فارسی بدون تگ های HTML هست. روی چنین متنی کار خاصی انجام میده؟
-
-
August 23rd, 2017, 01:25
#4
عضو دائم
پاسخ : جریان esc_html و esc_attr چیه؟

نوشته اصلی توسط
naghmesra
والا من تست کردم ولی تغییری ندیدم.
شاید متن من کاراکتر های خاصی که این توابع روشون کار میکنند رو ندارن.
مثلا متن که به esc_html میدم یه متن فارسی بدون تگ های HTML هست. روی چنین متنی کار خاصی انجام میده؟
ورودی html بدید :
کد:
$attr = '<div class="the" rel="quick" onclick="brown(\'fox\')">jumped over...</div>';
echo esc_html($attr);
خروجی :
کد:
<div class="the" rel="quick" onclick="brown('fox')">jumped over...</div>
-
تعداد تشکر ها ازT.Toosi به دلیل پست مفید
-
August 23rd, 2017, 02:07
#5
پاسخ : جریان esc_html و esc_attr چیه؟

نوشته اصلی توسط
T.Toosi
ورودی html بدید :
کد:
$attr = '<div class="the" rel="quick" onclick="brown(\'fox\')">jumped over...</div>';
echo esc_html($attr);
خروجی :
کد:
<div class="the" rel="quick" onclick="brown('fox')">jumped over...</div>
آهان متوجه شدم.
یعنی خروجی ای که از esc_html بیرون میاد به طور کلی به شکل سورس HTML نمایش داده میشه و اجرا نمیشه؟
-
-
August 23rd, 2017, 13:20
#6
عضو دائم
پاسخ : جریان esc_html و esc_attr چیه؟
باسلام، همانطور که مشاهده میکنید بعضی از کارکتر ها به کارکتر های Entity تبدیل شدند، حدود 250 کارکتر وجود دارد با تبدیل آن ها در نمایش HTML ما تغییری احساس نمیشود اما باعث جلوگیری از اجرای کد های جاوا اسکریپت یا PHP میشود، که در مثال زیر یک نمونه ساده حمله XSS با تزریق کد جاوا اسکریپت مشاهده میکنید :
کد:
https://paste.ofcode.org/5st8xC9gJCEUvEk9Bec8Sa
-
تعداد تشکر ها ازT.Toosi به دلیل پست مفید