XSS Prevention

18 views
Skip to first unread message

Ahmad Boorghany

unread,
Jul 21, 2012, 6:13:02 AM7/21/12
to sharif-ce874-90912
سلام.

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

htmlspecialchars برای attribute ها هم قابل استفاده است، به دو شرط:
  • حتماً دور مقدار attribute دو single-quote یا دو double-quote بگذارید و مقدار خروجی htmlspecialchars رو در بین این دو قرار دهید.
  • حتماً به عنوان پارامتر دوم به htmlspecialchars پرچم ENT_QUOTES را پاس کنید وگرنه به صورت خودکار single-quote را escape نمی کند.

البته دقت کنید که htmlspecialchars به هیچ وجه برای مکان های دیگر مانند javascript، css و ... مناسب نیست.

بعلاوه اگر می خواهید از کتابخانه ESAPI استفاده کنید، لینک دانلود آن در Google Code است که روی ایران بسته می باشد. من ان شاء الله آن را دانلود کرده و روی سایت درس خواهم گذاشت.

موفق باشید.

Ahmad Boorghany

unread,
Jul 21, 2012, 9:25:37 AM7/21/12
to sharif-ce874-90912

a musavi

unread,
Jul 23, 2012, 3:09:53 AM7/23/12
to sharif-ce...@googlegroups.com
با سلام

درکل ضرورتی هست که از این کتابخانه استفاده شود؟ یعنی همینکه در تگ های جاوا چیزی مثل
strip-tags
که همه کارکترهای اضافی را حذف می کند استفاده شود کافی نیست ؟ مگر بدون هیچ کاراکتر خاص سناریوی حمله ای هنوز ممکن هست؟

2012/7/21 Ahmad Boorghany <boor...@gmail.com>

--
You received this message because you are subscribed to the Google Groups "sharif-ce874-90912" group.
To post to this group, send email to sharif-ce...@googlegroups.com.
To unsubscribe from this group, send email to sharif-ce874-90...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sharif-ce874-90912?hl=en.

Ahmad Boorghany

unread,
Jul 23, 2012, 5:44:27 AM7/23/12
to sharif-ce...@googlegroups.com
  • اجباری روی استفاده از کتابخانه ای خاص نیست.
  • با رعایت نکات بالا، در این پروژه استفاده از htmlspecialchars کافی است (با توجه به اینکه نیازمندی های پیچیده مثل درج داده ی کاربر در جاوا اسکریپت و css و ... نداریم) .
  • بدیهتاً نباید کلا هر چی کاراکتر خاص هست رو حذف کنید. مثلاً استفاده از single-quote یا < > یا / در متن و عنوان و توضیح جایز است و کاربر می تواند اینها را وارد کند و برنامه شما هم باید آنها را نمایش بدهد (ولی escape کند).

2012/7/23 a musavi <musa...@gmail.com>
Reply all
Reply to author
Forward
0 new messages