המדיניות של XMLThreatProtection

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

מה

טיפול בנקודות חולשה ב-XML וצמצום התקפות על ה-API. אופציונלי: זיהוי מטען ייעודי (payload) של XML מתקפות על בסיס מגבלות שהוגדרו. סינון איומי XML באמצעות הפקודה הבאה גישות:

  • אימות הודעות מול סכימת XML (.xsd)
  • הערכת תוכן ההודעה לפי מילות מפתח או דפוסים ספציפיים שצריך להחריג
  • לזהות הודעות פגומות או לא תקינות לפני ניתוח ההודעות האלה

הפניה לרכיב

בהפניה לרכיב מתוארים הרכיבים והמאפיינים של XMLThreatProtection המדיניות בנושא

<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
   <DisplayName>XML Threat Protection 1</DisplayName>
   <NameLimits>
      <Element>10</Element>
      <Attribute>10</Attribute>
      <NamespacePrefix>10</NamespacePrefix>
      <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
   </NameLimits>
   <Source>request</Source>
   <StructureLimits>
      <NodeDepth>5</NodeDepth>
      <AttributeCountPerElement>2</AttributeCountPerElement>
      <NamespaceCountPerElement>3</NamespaceCountPerElement>
      <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
   </StructureLimits>
   <ValueLimits>
      <Text>15</Text>
      <Attribute>10</Attribute>
      <NamespaceURI>10</NamespaceURI>
      <Comment>10</Comment>
      <ProcessingInstructionData>10</ProcessingInstructionData>
   </ValueLimits> 
</XMLThreatProtection>

&lt;XMLThreatProtection&gt; מאפיינים

<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1"> 

בטבלה הבאה מתוארים מאפיינים שמשותפים לכל רכיבי ההורה של המדיניות:

מאפיין תיאור ברירת מחדל נוכחות
name

השם הפנימי של המדיניות. הערך של המאפיין name יכול לכלול אותיות, מספרים, רווחים, מקפים, קווים תחתונים ונקודות. הערך הזה לא יכול ארוך מ-255 תווים.

אפשר להשתמש ברכיב <DisplayName> כדי להוסיף תווית למדיניות עורך ה-Proxy של ממשק המשתמש לניהול בעל שם אחר בשפה טבעית.

לא רלוונטי חובה
continueOnError

צריך להגדיר את הערך false כדי להחזיר שגיאה כשמדיניות נכשלת. המצב הזה צפוי של רוב כללי המדיניות.

יש להגדיר ל-true כדי שביצוע התהליך יימשך גם לאחר המדיניות נכשל.

false אופציונלי
enabled

צריך להגדיר את הערך true כדי לאכוף את המדיניות.

צריך להגדיר את הערך false כדי להשבית את המדיניות. המדיניות לא תהיה אכיפה גם אם היא ממשיכה להיות מחוברת לזרימה.

true אופציונלי
async

המאפיין הזה הוצא משימוש.

false הוצא משימוש

&lt;DisplayName&gt; רכיב

צריך להשתמש בנוסף למאפיין name כדי להוסיף תווית למדיניות עורך proxy של ממשק משתמש לניהול עם שם אחר בשפה טבעית.

<DisplayName>Policy Display Name</DisplayName>
ברירת מחדל

לא רלוונטי

אם משמיטים את הרכיב הזה, הערך של המאפיין name של המדיניות הוא בשימוש.

נוכחות אופציונלי
סוג מחרוזת

&lt;NameLimits&gt; רכיב

מציינת את מגבלות התווים שצריך לבדוק ולאכוף באמצעות המדיניות.

<NameLimits>
   <Element>10</Element>
   <Attribute>10</Attribute>
   <NamespacePrefix>10</NamespacePrefix>
   <ProcessingInstructionTarget>10</ProcessingInstructionTarget>     
</NameLimits>
ברירת המחדל: לא רלוונטי
נוכחות: אופציונלי
סוג: לא רלוונטי

&lt;NameLimits&gt;/&lt;Element&gt; רכיב

מציינת את המגבלה על מספר התווים המקסימלי שמותר לכל שם רכיב ב-XML מהמסמך.

למשל, שימו לב ל-XML הבא:

<book category="WEB">
   <title>Learning XML</title>
   <author>Erik T. Ray</author>
   <year>2003</year>
</book>

בניתוח ה-XML שלמעלה, ערך הרכיב <Element> במדיניות קטע הקוד שבהמשך יאמת את שמות הרכיבים (book , title, author ו-year) לא חורגים מ-10 תווים.

<NameLimits>
   <Element>10</Element>
   <Attribute>10</Attribute>
   <NamespacePrefix>10</NamespacePrefix>
   <ProcessingInstructionTarget>10</ProcessingInstructionTarget>     
</NameLimits>
ברירת המחדל: אם לא תציינו מגבלה, המערכת תחיל את ערך ברירת המחדל של -1, שהמערכת שווה ערך ל'אין הגבלה'.
נוכחות: אופציונלי
סוג: מספר שלם

&lt;NameLimits&gt;/&lt;Attribute&gt; רכיב

מציינת מגבלה על מספר התווים המקסימלי שמותר לכל שם מאפיין מסמך XML.

למשל, שימו לב ל-XML הבא:

<book category="WEB">
   <title>Learning XML</title>
   <author>Erik T. Ray</author>
   <year>2003</year>
</book>

בניתוח ה-XML שלמעלה, ערך הרכיב <Attribute> במדיניות קטע הקוד שבהמשך יאמת ששם המאפיין category לא עולה על 10 תווים.

<NameLimits>
   <Element>10</Element>
   <Attribute>10</Attribute>
   <NamespacePrefix>10</NamespacePrefix>
   <ProcessingInstructionTarget>10</ProcessingInstructionTarget>     
</NameLimits>
ברירת המחדל: אם לא תציינו מגבלה, המערכת תחיל את ערך ברירת המחדל של -1, שהמערכת שווה ערך ל'אין הגבלה'.
נוכחות: אופציונלי
סוג: מספר שלם

&lt;NameLimits&gt;/&lt;NamespacePrefix&gt; רכיב

מציינת מגבלה על מספר התווים המקסימלי שמותר בקידומת של מרחב השמות מסמך XML.

למשל, שימו לב ל-XML הבא:

<ns1:myelem xmlns:ns1="http://ns1.com"/>

בניתוח ה-XML שלמעלה, ערך הרכיב <NamespacePrefix> בקובץ ה-XML קטע הקוד של המדיניות הבא יאשר שהקידומת של מרחב השמות ns1 לא חורגת מהמגבלה 10 תווים.

<NameLimits>
   <Element>10</Element>
   <Attribute>10</Attribute>
   <NamespacePrefix>10</NamespacePrefix>
   <ProcessingInstructionTarget>10</ProcessingInstructionTarget>     
</NameLimits>
ברירת המחדל: אם לא תציינו מגבלה, המערכת תחיל את ערך ברירת המחדל של -1, שהמערכת שווה ערך ל'אין הגבלה'.
נוכחות: אופציונלי
סוג: מספר שלם

&lt;NameLimits&gt;/&lt;ProcessingInstructionTarget&gt; רכיב

מציינת מגבלה על מספר התווים המקסימלי שמותר לכלול ביעד של כל רכיב הוראות לעיבוד במסמך ה-XML.

למשל, שימו לב ל-XML הבא:

<?xml-stylesheet type="text/xsl" href="style.xsl"?>

בניתוח ה-XML שלמעלה, הרכיב <ProcessingInstructionTarget> בערך בקטע הקוד של המדיניות שלמטה, יתבצע אימות שהיעד של הוראה לעיבוד מידע xml-stylesheet לא חורגת מ-10 תווים.

<NameLimits>
   <Element>10</Element>
   <Attribute>10</Attribute>
   <NamespacePrefix>10</NamespacePrefix>
   <ProcessingInstructionTarget>10</ProcessingInstructionTarget>     
</NameLimits>
ברירת המחדל: אם לא תציינו מגבלה, המערכת תחיל את ערך ברירת המחדל של -1, שהמערכת שווה ערך ל'אין הגבלה'.
נוכחות: אופציונלי
סוג: מספר שלם

&lt;Source&gt; רכיב

הודעה שצריך לבדוק אם יש התקפות מטען ייעודי (payload) של XML. בדרך כלל ההגדרה הזו היא request, מכיוון שבדרך כלל צריך לאמת בקשות נכנסות מאפליקציות של לקוח. אם הערך שמוגדר הוא message, הרכיב הזה יעריך באופן אוטומטי את הודעת הבקשה כאשר הם מצורפים לתהליך הבקשה ולהודעת התשובה כשהיא מצורפת לתשובה .

<Source>request</Source>
ברירת המחדל: בקשה
נוכחות: אופציונלי
סוג:

מחרוזת.

אפשר לבחור מבין האפשרויות request, response או message.

&lt;StructuralLimits&gt; רכיב

מציינת את המגבלות המבניות לבדיקה ולאכיפה של המדיניות.

<StructureLimits>
   <NodeDepth>5</NodeDepth>
   <AttributeCountPerElement>2</AttributeCountPerElement>
   <NamespaceCountPerElement>3</NamespaceCountPerElement>
   <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
</StructureLimits>
ברירת המחדל: לא רלוונטי
נוכחות: אופציונלי
סוג: לא רלוונטי

&lt;StructuralLimits&gt;/&lt;NodeDepth&gt; רכיב

מציינת את עומק הצומת המקסימלי המותר ב-XML.

<StructureLimits>
   <NodeDepth>5</NodeDepth>
   <AttributeCountPerElement>2</AttributeCountPerElement>
   <NamespaceCountPerElement>3</NamespaceCountPerElement>
   <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
</StructureLimits>
ברירת המחדל: אם לא תציינו מגבלה, המערכת תחיל את ערך ברירת המחדל של -1, שהמערכת שווה ערך ל'אין הגבלה'.
נוכחות: אופציונלי
סוג:

מספר שלם

&lt;StructuralLimits&gt;/&lt;AttributeCountPerElement&gt; רכיב

מציינת את מספר המאפיינים המקסימלי שמותר לכל רכיב.

למשל, שימו לב ל-XML הבא:

<book category="WEB">
   <title>Learning XML</title>
   <author>Erik T. Ray</author>
   <year>2003</year>
</book>
כשמנתחים את ה-XML שלמעלה, ערך הרכיב <AttributeCountPerElement> בקטע הקוד של המדיניות שבהמשך, יתבצע אימות שהרכיבים book, title, author ו-year לא כוללים יותר מ-2 מאפיינים לכל אחד. חשוב לזכור שמאפיינים שמשמשים להגדרת מרחבי שמות לא נספרים.
<StructureLimits>
   <NodeDepth>5</NodeDepth>
   <AttributeCountPerElement>2</AttributeCountPerElement>
   <NamespaceCountPerElement>3</NamespaceCountPerElement>
   <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
</StructureLimits>
ברירת המחדל: אם לא תציינו מגבלה, המערכת תחיל את ערך ברירת המחדל של -1, שהמערכת שווה ערך ל'אין הגבלה'.
נוכחות: אופציונלי
סוג:

מספר שלם

&lt;StructuralLimits&gt;/&lt;NameSpaceCountPerElement&gt; רכיב

מציינת את המספר המקסימלי של הגדרות מרחב שמות שמותרות לכל רכיב.

למשל, שימו לב ל-XML הבא:

<e1 attr1="val1" attr2="val2">
    <e2 xmlns="http://apigee.com" xmlns:yahoo="http://yahoo.com" one="1" yahoo:two="2"/>
</e1>

בניתוח ה-XML שלמעלה, ערך הרכיב <NamespaceCountPerElement> בקטע הקוד של המדיניות שבהמשך יתבצע אימות שהרכיבים e1 ו-e2 לא יכולות לכלול יותר מ-2 הגדרות של מרחב שמות, כל אחת. במקרה הזה, ל-<e1> יש 0 הגדרות של מרחב שמות וגם ל-<e2> יש 2 מרחב שמות הגדרות: xmlns="http://apigee.com" ו xmlns:yahoo="http://yahoo.com"

<StructureLimits>
   <NodeDepth>5</NodeDepth>
   <AttributeCountPerElement>2</AttributeCountPerElement>
   <NamespaceCountPerElement>3</NamespaceCountPerElement>
   <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
</StructureLimits>
ברירת המחדל: אם לא תציינו מגבלה, המערכת תחיל את ערך ברירת המחדל של -1, שהמערכת שווה ערך ל'אין הגבלה'.
נוכחות: אופציונלי
סוג:

מספר שלם

&lt;StructuralLimits&gt;/&lt;ChildCount&gt; רכיב

מציינת את המספר המקסימלי של רכיבי צאצא שמותר לכל רכיב.

<StructureLimits>
   <NodeDepth>5</NodeDepth>
   <AttributeCountPerElement>2</AttributeCountPerElement>
   <NamespaceCountPerElement>3</NamespaceCountPerElement>
   <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
</StructureLimits>
ברירת המחדל: אם לא תציינו מגבלה, המערכת תחיל את ערך ברירת המחדל של -1, שהמערכת שווה ערך ל'אין הגבלה'.
נוכחות: אופציונלי
סוג:

מספר שלם

מאפיינים

מאפיין ברירת מחדל נוכחות
includeComment true אופציונלי
includeElement true אופציונלי
includeProcessingInstructions true אופציונלי
includeText true אופציונלי

&lt;ValueLimits&gt; רכיב

מציינת מגבלות תווים כדי שהערכים שייבדקו וייאכפו על ידי המדיניות.

<ValueLimits>
   <Text>15</Text>
   <Attribute>10</Attribute>
   <NamespaceURI>10</NamespaceURI>
   <Comment>10</Comment>
   <ProcessingInstructionData>10</ProcessingInstructionData>
</ValueLimits>
ברירת המחדל: לא רלוונטי
נוכחות: אופציונלי
סוג:

לא רלוונטי

&lt;ValueLimits&gt;/&lt;Text&gt; רכיב

מציינת מגבלת תווים לכל צומתי טקסט שנמצאים במסמך ה-XML.

למשל, שימו לב ל-XML הבא:

<book category="WEB">
   <title>Learning XML</title>
   <author>Erik T. Ray</author>
   <year>2003</year>
</book>
כשמנתחים את ה-XML שלמעלה, ערך הרכיב <Text> במדיניות קטע הקוד שבהמשך יבצע אימות שערכי הטקסט של הרכיב Learning XML, Erik T. Ray, ו-2003 לא יחרגו מ-15 תווים כל אחד.
<ValueLimits>
   <Text>15</Text>
   <Attribute>10</Attribute>
   <NamespaceURI>10</NamespaceURI>
   <Comment>10</Comment>
   <ProcessingInstructionData>10</ProcessingInstructionData>
</ValueLimits>
ברירת המחדל: אם לא תציינו מגבלה, המערכת תחיל את ערך ברירת המחדל של -1, שהמערכת שווה ערך ל'אין הגבלה'.
נוכחות: אופציונלי
סוג:

מספר שלם

&lt;ValueLimits&gt;/&lt;Attribute&gt; רכיב

מציינת מגבלת תווים לכל ערכי מאפיינים במסמך ה-XML.

למשל, שימו לב ל-XML הבא:

<book category="WEB">
   <title>Learning XML</title>
   <author>Erik T. Ray</author>
   <year>2003</year>
</book>
כשמנתחים את ה-XML שלמעלה, ערך הרכיב <Attribute> במדיניות קטע הקוד שבהמשך יאמת שערך המאפיין WEB לא עולה על 10 תווים.
<ValueLimits>
   <Text>15</Text>
   <Attribute>10</Attribute>
   <NamespaceURI>10</NamespaceURI>
   <Comment>10</Comment>
   <ProcessingInstructionData>10</ProcessingInstructionData>
</ValueLimits>
ברירת המחדל: אם לא תציינו מגבלה, המערכת תחיל את ערך ברירת המחדל של -1, שהמערכת שווה ערך ל'אין הגבלה'.
נוכחות: אופציונלי
סוג:

מספר שלם

&lt;ValueLimits&gt;/&lt;NamespaceURI&gt; רכיב

מציינת מגבלת תווים לכל מזהה URI של מרחב שמות שנמצא במסמך ה-XML.

למשל, שימו לב ל-XML הבא:

<ns1:myelem xmlns:ns1="http://ns1.com"/>
כשמנתחים את ה-XML שלמעלה, ערך הרכיב <NamespaceURI> בקובץ קטע הקוד של המדיניות שבהמשך תאמת שערך ה-URI של מרחב השמות http://ns1.com לא יחרגו מ-10 תווים.
<ValueLimits>
   <Text>15</Text>
   <Attribute>10</Attribute>
   <NamespaceURI>10</NamespaceURI>
   <Comment>10</Comment>
   <ProcessingInstructionData>10</ProcessingInstructionData>
</ValueLimits>
ברירת המחדל: אם לא תציינו מגבלה, המערכת תחיל את ערך ברירת המחדל של -1, שהמערכת שווה ערך ל'אין הגבלה'.
נוכחות: אופציונלי
סוג:

מספר שלם

&lt;ValueLimits&gt;/&lt;Comment&gt; רכיב

מציינת מגבלת תווים של תגובות במסמך ה-XML.

למשל, שימו לב ל-XML הבא:

<book category="WEB">
   <!-- This is a comment -->
   <title>Learning XML</title>
   <author>Erik T. Ray</author>
   <year>2003</year>
</book>
כשמנתחים את ה-XML שלמעלה, ערך הרכיב <Comment> במדיניות קטע הקוד שבהמשך יאשר שטקסט התגובה This is a comment לא עולה על 10 תווים.
<ValueLimits>
   <Text>15</Text>
   <Attribute>10</Attribute>
   <NamespaceURI>10</NamespaceURI>
   <Comment>10</Comment>
   <ProcessingInstructionData>10</ProcessingInstructionData>
</ValueLimits>
ברירת המחדל: אם לא תציינו מגבלה, המערכת תחיל את ערך ברירת המחדל של -1, שהמערכת שווה ערך ל'אין הגבלה'.
נוכחות: אופציונלי
סוג:

מספר שלם

&lt;ValueLimits&gt;/&lt;ProcessingInstructionData&gt; רכיב

מציינת מגבלת תווים לכל טקסט של הוראה לעיבוד שנמצא ב-XML מהמסמך.

למשל, שימו לב ל-XML הבא:

<?xml-stylesheet type="text/xsl" href="style.xsl"?>
כשמנתחים את ה-XML שלמעלה, הרכיב <ProcessingInstructionData> בקטע הקוד של המדיניות שלמטה, יתבצע אימות שהטקסט של הוראת העיבוד type="text/xsl" href="style.xsl" לא חורג מ-10 תווים.
<ValueLimits>
   <Text>15</Text>
   <Attribute>10</Attribute>
   <NamespaceURI>10</NamespaceURI>
   <Comment>10</Comment>
   <ProcessingInstructionData>10</ProcessingInstructionData>
</ValueLimits>
ברירת המחדל: אם לא תציינו מגבלה, המערכת תחיל את ערך ברירת המחדל של -1, שהמערכת שווה ערך ל'אין הגבלה'.
נוכחות: אופציונלי
סוג:

מספר שלם

התייחסות לשגיאות

This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Cause Fix
steps.xmlthreatprotection.ExecutionFailed 500 The XMLThreatProtection policy can throw many different types of ExecutionFailed errors. Most of these errors occur when a specific threshold set in the policy is exceeded. These types of errors include: element name length, child count, node depth, attribute count, attribute name length, and many others. You can see the complete list in the XMLThreatProtection policy runtime error troubleshooting topic.
steps.xmlthreatprotection.InvalidXMLPayload 500 This error occurs if the input message payload specified by the XMLThreatProtection policy's <Source> element is not a valid XML Document.
steps.xmlthreatprotection.SourceUnavailable 500 This error occurs if the message variable specified in the <Source> element is either:
  • Out of scope (not available in the specific flow where the policy is being executed)
  • Is not one of the valid values request, response, or message
steps.xmlthreatprotection.NonMessageVariable 500 This error occurs if the <Source> element is set to a variable which is not of type message.

Notes:

  • The error name ExecutionFailed is the default error name and will be returned regardless of the type of error detected; however, this default can be changed by setting an organization-level property. When this property is set, the error name will reflect the actual error. For example, "TextExceeded" or "AttrValueExceeded". See Usage Notes for details.
  • The 500 HTTP status is the default; however, the HTTP Status can be changed to 400 for request flow faults by setting an organization-level property. See Usage Notes for details.

Deployment errors

None.

Fault variables

These variables are set when a runtime error occurs. For more information, see What you need to know about policy errors.

Variables Where Example
fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name Matches "SourceUnavailable"
xmlattack.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. xmlattack.XPT-SecureRequest.failed = true

Example error response

{
  "fault": {
    "faultstring": "XMLThreatProtection[XPT-SecureRequest]: Execution failed. reason: XMLThreatProtection[XTP-SecureRequest]: Exceeded object entry name length at line 2",
    "detail": {
      "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
    }
  }
}

Example fault rule

<FaultRule name="XML Threat Protection Policy Faults">
    <Step>
        <Name>AM-CustomErrorResponse</Name>
        <Condition>(fault.name Matches "ExecutionFailed") </Condition>
    </Step>
    <Condition>(xmlattack.XPT-SecureRequest.failed = true) </Condition>
</FaultRule>

סכימות

הערות שימוש

כל שרת שמקבל נתונים אונליין כפוף למתקפה, בין אם באופן זדוני ובין אם לאו. חלק מהמתקפות מנצלים את הגמישות של XML על ידי בניית מסמכים לא חוקיים את הפוטנציאל לפגוע במערכות עורפיות. מסמכי XML פגומים או מורכבים מאוד שגורמת לשרתים להקצות יותר זיכרון ממה שזמין, מה שמקשר בין משאבי המעבד (CPU) לזיכרון, מנתחים לקריסה, ובדרך כלל השבתה של עיבוד ההודעות ויצירת ברמת האפליקציה התקפות מניעת שירות (DoS).

הגדרה של שגיאות הגנה מאיומים

מידע חשוב במקרה של יצירת כללי שגיאה למדיניות הזו: על ידי כברירת מחדל, Edge יקפיץ את קוד הסטטוס 'שגיאת שרת פנימית' מסוג HTTP 500 ושגיאת ביצוע נכשל קוד אם ההודעה לא עוברת את המדיניות של JSON או XML בנושא הגנה מפני איומים. אפשר לשנות את התנהגות השגיאה הזו בנכס חדש ברמת הארגון. בעת הגדרת הארגון המאפיין features.isPolicyHttpStatusEnabled מוגדר ל-TRUE, הפונקציה הבאה מה קורה:

  • בקשה: לכל תהליך בקשה מצורפת מדיניות הגנה מפני איומים, הודעות לא חוקיות מוחזר 400 קוד סטטוס בקשה שגוי יחד עם שגיאה תואמת במדיניות הקוד (במקום רק ExecutionFailed).
  • תגובה: לכל תהליך תגובה שמצורפת מדיניות הגנה מפני איומים, יש הודעות לא תקינות עדיין מוחזר קוד הסטטוס 500 Internal Server Error, קודי השגיאות התואמים של המדיניות נעשים (ולא רק ביצוע נכשל).

לקוחות Cloud צריכים לפנות לתמיכה של Apigee Edge כדי להגדיר את מאפיין הארגון.

נושאים קשורים

איום בפורמט JSON מדיניות ההגנה

רגיל המדיניות בנושא הגנה על ביטויים