54 lines
1.7 KiB
Markdown
54 lines
1.7 KiB
Markdown
|
---
|
|||
|
title: HTML Dom Innerhtml Property
|
|||
|
localeTitle: خاصية HTML Dom Innerhtml
|
|||
|
---
|
|||
|
## خاصية HTML Dom Innerhtml
|
|||
|
|
|||
|
تقوم `innerHTML` prop بإرجاع محتوى HTML داخل عنصر محدد وتتيح لك أيضًا تحديد محتوى HTML جديد.
|
|||
|
|
|||
|
**_الحصول على عنصر المحتوى_**
|
|||
|
|
|||
|
`
|
|||
|
<div id="demo">
|
|||
|
<p>Demo</p>
|
|||
|
</div>
|
|||
|
`
|
|||
|
|
|||
|
`var element = document.getElementById("demo");
|
|||
|
console.log(element.innerHTML) //logs <p>Demo</p>
|
|||
|
`
|
|||
|
|
|||
|
**_محتوى مجموعة العنصر_**
|
|||
|
|
|||
|
`
|
|||
|
<div id="demo"></div>
|
|||
|
`
|
|||
|
|
|||
|
`var element = document.getElementById("demo");
|
|||
|
element.innerHTML = "<div>Demo</div>";
|
|||
|
`
|
|||
|
|
|||
|
سوف يكون مثل HTML الآن
|
|||
|
|
|||
|
`
|
|||
|
<div id="demo">
|
|||
|
<div>Demo</div>
|
|||
|
</div>
|
|||
|
`
|
|||
|
|
|||
|
**_اعتبارات أمنية_**
|
|||
|
|
|||
|
يجب أن تأتي القيمة التي تم تعيينها على `innerHTML` من مصادر موثوقة ، بما أن جافا سكريبت ستضع أي شيء داخل هذا العنصر وسيتم تشغيله على هيئة HTML عادي.
|
|||
|
|
|||
|
مثال:
|
|||
|
|
|||
|
سيؤدي تعيين قيمة " `<script>alert();</script>` " إلى تشغيل وظيفة "alert ()" في Javascript:
|
|||
|
|
|||
|
`var element = document.getElementById("demo");
|
|||
|
|
|||
|
element.innerHTML = "<script>alert();</script>";
|
|||
|
`
|
|||
|
|
|||
|
يسمى هذا النوع من الهجوم [Scripting عبر الموقع أو XSS باختصار](https://en.wikipedia.org/wiki/Cross-site_scripting) .
|
|||
|
|
|||
|
هذه هي واحدة من الطرق الأكثر شيوعا لارتكاب هجوم XSS. إذا كنت تريد معرفة المزيد من المعلومات وتعلّم كيفية الدفاع عنها ، [فراجع هذا المصدر](https://xss-game.appspot.com/)
|