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/) |