RegularExpressionProtection নীতি

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

কী

মেসেজ থেকে তথ্য এক্সট্র্যাক্ট করে (যেমন, URI পাথ, কোয়েরি প্যারামিটার, হেডার, ফর্ম প্যারামিটার, ভেরিয়েবল, XML পেলোড বা JSON পেলোড) এবং আগে থেকে সংজ্ঞায়িত রেগুলার এক্সপ্রেশনের সাথে সেই কন্টেন্ট মূল্যায়ন করে। উল্লেখ করা কোনও রেগুলার এক্সপ্রেশন সত্য হলে, মেসেজটিকে হুমকি হিসেবে বিবেচনা করা হয় এবং সেটি বাতিল করা হয়।

ভিডিও

রেগুলার এক্সপ্রেশন সুরক্ষা নীতি সম্পর্কে আরও জানতে নিম্নলিখিত ভিডিও দেখুন।

ভিডিও বিবরণ
SQL ইঞ্জেকশন অ্যাটাকের বিরুদ্ধে সুরক্ষা (নতুন Edge) নতুন Edge অভিজ্ঞতা UI-তে রেগুলার এক্সপ্রেশন সুরক্ষা নীতি ব্যবহার করে SQL ইঞ্জেকশন অ্যাটাক থেকে সুরক্ষিত থাকুন।
SQL ইঞ্জেকশন অ্যাটাকের বিরুদ্ধে সুরক্ষা (ক্লাসিক Edge) ক্লাসিক Edge UI-তে রেগুলার এক্সপ্রেশন সুরক্ষা নীতি ব্যবহার করে SQL ইঞ্জেকশন অ্যাটাক থেকে সুরক্ষিত থাকুন।

নমুনা

GitHub

GitHub-এ regex-সুরক্ষা স্যাম্পেল দেখায় যে কীভাবে কোয়েরি প্যারামিটারের মাধ্যমে সম্ভাব্য SQL ইঞ্জেকশন অ্যাটাক আটকানো যায়। এছাড়াও, হ্যাকারদের উত্তর থেকে কোনও দরকারী তথ্য পাওয়া থেকে আটকাতে, নমুনাটি একটি জেনেরিক 400 এরর স্ট্যাটাস সেট করার একটি ভাল অনুশীলন দেখায়।

জাভাস্ক্রিপ্ট ইনক্লুড অ্যাটাক প্রোটেকশন

<RegularExpressionProtection name="JsonPathRegExProtection">
    <DisplayName>Regular Expression Protection 1</DisplayName>
    <Source>request</Source>
    <JSONPayload escapeSlashCharacter="true">
       <JSONPath>
          <Expression>$</Expression>
          <Pattern>&lt;\s*script\b[^&gt;]*&gt;[^&lt;]+&lt;\s*\/\s*script\s*&gt;
          </Pattern>
          <Pattern>n\s*\\\\\s*slash</Pattern>
          <Pattern>n\s*\/\s*slash</Pattern>
          <Pattern>n\s*\\"\s*quotes</Pattern>
          <Pattern>n\s*\\b\s*space</Pattern>
          <Pattern>n\s*\\f\s*forwardfeed</Pattern>
          <Pattern>n\s*\\n\s*newline</Pattern>
          <Pattern>n\s*\\r\s*carria</Pattern>
          <Pattern>n\s*\\t\s*tab</Pattern>
          <Pattern>n\s*\\uFFFF\s*hex</Pattern>
       </JSONPath>
    </JSONPayload>
 </RegularExpressionProtection>

জাভাস্ক্রিপ্ট ইনক্লুড অ্যাট্যাকের জন্য JSON পেলোড মূল্যায়ন করতে RegularExpressionProtection নীতি কীভাবে ব্যবহার করতে হয় তা উপরের নমুনা থেকে বোঝা যায়। বিশেষত, <JSONPath>/<Expression>-এর মাধ্যমে এক্সট্র্যাক্ট করা কন্টেন্টকে <JSONPath>/<Pattern>-এর রেগুলার এক্সপ্রেশনের সাথে তুলনা করে মূল্যায়ন করা হয়।

আপনার <JSONPath>/<Pattern>-এ রেগুলার এক্সপ্রেশনে XML-এর জন্য সংরক্ষিত অক্ষর (", &, ', <, বা .) থাকলে, নীতি XML কনফিগারেশন ফাইলে যোগ করার আগে আপনাকে অবশ্যই XML-এনকোড করতে হবে। যেমন, উপরের নমুনাতে, রেগুলার এক্সপ্রেশন <\s*script\b[^>]*>[^<]+<\s*\/\s*script\s*>-কে XML-এনকোড করে &lt;\s*script\b[^&gt;]*&gt;[^&lt;]+&lt;\s*\/\s*script\s*&gt; হিসেবে দেখানো হয়েছে।

এছাড়াও, আপনার রেগুলার এক্সপ্রেশনে ফরওয়ার্ড স্ল্যাশ (/) থাকলে, আপনাকে অবশ্যই <JSONPayload> escapeSlashCharacter অ্যাট্রিবিউটকে true হিসেবে সেট করে সেগুলিকে এস্কেপ করতে হবে।

ছোট ও বড় হাতের অক্ষরের মধ্যে পার্থক্য না করে ম্যাচ করা

কেস-ইনসেনসিটিভ ম্যাচিং করা একটি সাধারণ ব্যবহারিক প্রয়োগ। (?i) কনস্ট্রাক্ট ব্যবহার করে রেগুলার এক্সপ্রেশনে আপনি কীভাবে এটি করতে পারেন তার একটি উদাহরণ এখানে দেওয়া হল। এই উদাহরণে, যেমন, DELETE, delete এবং Delete-এর মূল্যায়ন করলে উত্তর 'সঠিক' হবে।

<Pattern>[\s]*(?i)((delete)|(exec)|(drop\s*table)|(insert)|(shutdown)|(update)|(\bor\b))</Pattern>

রেগুলার এক্সপ্রেশন সুরক্ষা নীতি সম্পর্কে

Apigee Edge আপনাকে রেগুলার এক্সপ্রেশন কনফিগার করতে দেয় যা রানটাইমে API ট্রাফিকের বিরুদ্ধে মূল্যায়ন করে সাধারণ কন্টেন্ট-লেভেল হুমকি শনাক্ত করতে পারে যা নির্দিষ্ট প্যাটার্ন অনুসরণ করে।

রেগুলার এক্সপ্রেশন বা সংক্ষেপে রেজেক্স হল স্ট্রিংয়ের একটি সেট যা স্ট্রিংয়ে একটি প্যাটার্ন নির্দিষ্ট করে। রেগুলার এক্সপ্রেশন, কন্টেন্টকে প্রোগ্রাম্যাটিক উপায়ে প্যাটার্নের জন্য মূল্যায়ন করতে সাহায্য করে। ইমেল আইডি সঠিকভাবে গঠন করা হয়েছে কিনা তা নিশ্চিত করতে, উদাহরণস্বরূপ, এটি মূল্যায়ন করার জন্য রেগুলার এক্সপ্রেশন ব্যবহার করা যেতে পারে । আরও তথ্যের জন্য, Java টিউটোরিয়ালে রেগুলার এক্সপ্রেশন দেখুন।

RegularExpressionProtection-এর সবচেয়ে সাধারণ ব্যবহার হল JSON এবং XML পে-লোড মূল্যায়ন করে ক্ষতিকর কন্টেন্ট শনাক্ত করা।

কোনও রেগুলার এক্সপ্রেশন কন্টেন্ট-ভিত্তিক সব অ্যাটাককে নির্মূল করতে পারে না এবং ডিপ্থ-ইন-ডিফেন্স চালু করতে একাধিক মেকানিজমকে একসাথে ব্যবহার করতে হবে। এই বিভাগে কন্টেন্ট বাদ দেওয়ার জন্য কিছু সাজেস্ট করা প্যাটার্ন বর্ণনা করা হয়েছে।

এক্সক্লুশন প্যাটার্নের উদাহরণ

নীতির XML কনফিগারেশন ফাইলে রেগুলার এক্সপ্রেশনকে অবশ্যই XML-এনকোড করতে হবে।

নাম রেগুলার এক্সপ্রেশন
SQL ইঞ্জেকশন
[\s]*((delete)|(exec)|(drop\s*table)|(insert)|(shutdown)|(update)|(\bor\b))
সার্ভার-সাইড ইনক্লুড ইনজেকশন
<!--#(include|exec|echo|config|printenv)\s+.*

XML এনকোড করা:

&lt;!--#(include|exec|echo|config|printenv)\s+.*
XPath সংক্ষিপ্ত সিনট্যাক্স ইনজেকশন
(/(@?[\w_?\w:\*]+(\[[^]]+\])*)?)+
XPath Expanded Syntax Injection
/?(ancestor(-or-self)?|descendant(-or-self)?|following(-sibling))
JavaScript Injection
<\s*script\b[^>]*>[^<]+<\s*/\s*script\s*>

XML এনকোড করা:

&lt;\s*script\b[^&gt;]*&gt;[^&lt;]+&lt;\s*/\s*script\s*&gt;
Java Exception Injection
.*?Exception in thread.*

XML বা JSON পেলোড সহ কোনও অনুরোধে Content-Type হেডার সেট করুন

রেগুলার এক্সপ্রেশন সুরক্ষা নীতির পেলোডে নিম্নলিখিত এলিমেন্ট থাকতে পারে:

  • <XMLPayload> এলিমেন্ট: নির্দিষ্ট করে যে XML পেলোড থেকে তথ্য এক্সট্র্যাক্ট করতে হবে এবং প্রদত্ত রেগুলার এক্সপ্রেশন অনুযায়ী মূল্যায়ন করতে হবে।

    আপনি যদি নীতিতে <XMLPayload> ব্যবহার করেন, তাহলে অনুরোধের Content-Type হেডারকে অবশ্যই XML কন্টেন্ট-টাইপ হতে হবে, যেমন application/xml বা text/xml।

  • <JSONPayload> এলিমেন্ট: নির্দিষ্ট করে যে JSON পেলোড থেকে তথ্য এক্সট্র্যাক্ট করতে হবে এবং প্রদত্ত রেগুলার এক্সপ্রেশন অনুযায়ী মূল্যায়ন করতে হবে।

    আপনি নীতিতে <JSONPayload> ব্যবহার করলে, অনুরোধের Content-Type হেডারকে অবশ্যই JSON কন্টেন্ট-টাইপ হতে হবে, যেমন application/json।

সাধারণত, আপনি XML বা JSON গ্রহণ করার জন্য একটি API ডিজাইন করেন। তবে, এমন পরিস্থিতি হতে পারে যেখানে API দু'টিই গ্রহণ করেছে। তারপরে, আপনি একটি রেগুলার এক্সপ্রেশন প্রোটেকশন নীতি নির্ধারণ করতে পারেন যা <XMLPayload> এবং <JSONPayload> দুটি এলিমেন্টই ব্যবহার করে। Content-Type হেডার ভ্যালুর উপর ভিত্তি করে কোনও নির্দিষ্ট অনুরোধের জন্য শুধুমাত্র একটি এলিমেন্ট প্রযোজ্য হবে।

এলিমেন্ট রেফারেন্স

এলিমেন্ট রেফারেন্সে RegularExpressionProtection নীতির এলিমেন্ট ও অ্যাট্রিবিউট বর্ণনা করা আছে।

<RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
   <DisplayName>Regular Expression Protection 1</DisplayName>
   <Source>response</Source>
   <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
   <URIPath>
     <Pattern>REGEX PATTERN</Pattern>
     <Pattern>REGEX PATTERN</Pattern>
   </URIPath>
   <QueryParam name="a-query-param">
     <Pattern>REGEX PATTERN</Pattern>
     <Pattern>REGEX PATTERN</Pattern>
   </QueryParam>
   <Header name="a-header">
     <Pattern>REGEX PATTERN</Pattern>
     <Pattern>REGEX PATTERN</Pattern>
   </Header>
   <FormParam name="a-form-param">
     <Pattern>REGEX PATTERN</Pattern>
     <Pattern>REGEX PATTERN</Pattern>
   </FormParam>
   <Variable name="request.content">
     <Pattern>REGEX PATTERN</Pattern>
     <Pattern>REGEX PATTERN</Pattern>
   </Variable>
   <XMLPayload>
     <Namespaces>
       <Namespace prefix="apigee">http://www.apigee.com</Namespace>
     </Namespaces>
     <XPath>
       <Expression>/apigee:Greeting/apigee:User</Expression>
       <Type>string</Type>
       <Pattern>REGEX PATTERN</Pattern>
       <Pattern>REGEX PATTERN</Pattern>
     </XPath>
   </XMLPayload>
   <JSONPayload>
     <JSONPath>
       <Expression>$.store.book[*].author</Expression>
       <Pattern>REGEX PATTERN</Pattern>
       <Pattern>REGEX PATTERN</Pattern>
     </JSONPath>
    </JSONPayload>
</RegularExpressionProtection>

<RegularExpressionProtection> অ্যাট্রিবিউট

<RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">

নিম্নলিখিত সারণী সমস্ত নীতির মূল উপাদানগুলির জন্য সাধারণ বৈশিষ্ট্যগুলি বর্ণনা করে:

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি
name

নীতির অভ্যন্তরীণ নাম। name বৈশিষ্ট্যের মানটিতে অক্ষর, সংখ্যা, স্পেস, হাইফেন, আন্ডারস্কোর এবং পিরিয়ড থাকতে পারে। এই মান 255 অক্ষরের বেশি হতে পারে না।

ঐচ্ছিকভাবে, ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে <DisplayName> উপাদানটি ব্যবহার করুন।

N/A প্রয়োজন
continueOnError

একটি নীতি ব্যর্থ হলে একটি ত্রুটি ফেরত দিতে false সেট করুন৷ এটি বেশিরভাগ নীতির জন্য প্রত্যাশিত আচরণ।

একটি নীতি ব্যর্থ হওয়ার পরেও ফ্লো এক্সিকিউশন চালিয়ে যেতে true সেট করুন৷

মিথ্যা ঐচ্ছিক
enabled

নীতি প্রয়োগ করতে true সেট করুন৷

নীতি বন্ধ করতে false সেট করুন। নীতিটি প্রবাহের সাথে সংযুক্ত থাকলেও তা কার্যকর করা হবে না।

সত্য ঐচ্ছিক
async

এই বৈশিষ্ট্যটি অবমূল্যায়ন করা হয়েছে৷

মিথ্যা অবচয়

<DisplayName> উপাদান

ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে name বৈশিষ্ট্য ছাড়াও ব্যবহার করুন।

<DisplayName>Policy Display Name</DisplayName>
ডিফল্ট

N/A

আপনি এই উপাদানটি বাদ দিলে, নীতির name বৈশিষ্ট্যের মান ব্যবহার করা হবে।

উপস্থিতি ঐচ্ছিক
টাইপ স্ট্রিং

<Source> এলিমেন্ট

যে মেসেজ থেকে তথ্য এক্সট্র্যাক্ট করতে হবে তা নির্দেশ করে।

<Source> এলিমেন্ট বাদ দেওয়া হলে, ডিফল্ট ভ্যালু হিসেবে message সেট হয়ে যায়। যেমন, <Source>message</Source>. message হিসেবে সেট করা থাকলে, কোনও অনুরোধ ফ্লোতে অ্যাটাচ করা হলে, নীতিটি অনুরোধ মেসেজকে সোর্স হিসেবে ব্যবহার করে। একইভাবে, কোনও উত্তর ফ্লোতে অ্যাটাচ করা হলে নীতিটি উত্তর মেসেজ ব্যবহার করে।

সোর্স মেসেজ সমাধান করা না গেলে অথবা সেটি মেসেজ নয় এমন কোনও ধরনের হলে, নীতি একটি সমস্যার মেসেজ দেখায়।

<Source>response</Source>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক
টাইপ: স্ট্রিং

<IgnoreUnresolvedVariables> এলিমেন্ট

নীতিতে সমাধান করা যায় না এমন ভেরিয়েবেল থাকলে সেটি কোনও সমস্যা দেখায় কিনা তা নির্ধারণ করে।

false (ডিফল্ট) হিসেবে সেট করা থাকলে, সমাধান করা যায় না এমন ভেরিয়েবল পাওয়া গেলে নীতিটি একটি সমস্যা ফেরত দেয়। true হিসেবে সেট করা থাকলে, সমাধান না হওয়া ভেরিয়েবলকে খালি স্ট্রিং (Null) হিসেবে বিবেচনা করা হয়।

<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
ডিফল্ট: মিথ্যা
উপস্থিতি: ঐচ্ছিক
টাইপ: বুলিয়ান

<URIPath> এলিমেন্ট

এতে উল্লেখ করা হয় যে অনুরোধের URI পাথ থেকে তথ্য এক্সট্র্যাক্ট করতে হবে এবং প্রদান করা রেগুলার এক্সপ্রেশন অনুসারে মূল্যায়ন করতে হবে। আপনাকে অন্তত একটি <Pattern> এলিমেন্ট প্রদান করতে হবে যা ম্যাচ করার জন্য রেগুলার এক্সপ্রেশন প্যাটার্ন নির্দিষ্ট করে।

<URIPath>
  <Pattern>REGEX PATTERN</Pattern>
  <Pattern>REGEX PATTERN</Pattern>
</URIPath>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক
টাইপ: প্রযোজ্য নয়

<QueryParam> এলিমেন্ট

এতে উল্লেখ করা হয়েছে যে অনুরোধের কোয়েরি প্যারামিটার থেকে তথ্য এক্সট্র্যাক্ট করতে হবে এবং প্রদান করা রেগুলার এক্সপ্রেশন অনুযায়ী মূল্যায়ন করতে হবে। আপনাকে অন্তত একটি <Pattern> এলিমেন্ট প্রদান করতে হবে যা ম্যাচ করার জন্য রেগুলার এক্সপ্রেশন প্যাটার্ন নির্দিষ্ট করে।

<QueryParam name="a-query-param">
  <Pattern>REGEX PATTERN</Pattern>
  <Pattern>REGEX PATTERN</Pattern>
</QueryParam>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক
টাইপ: প্রযোজ্য নয়

অ্যাট্রিবিউট

অ্যাট্রিবিউট বিবরণ ডিফল্ট উপস্থিতি
নাম অনুরোধ কোয়েরি প্যারামিটারের নাম, যেখান থেকে প্রদান করা রেগুলার এক্সপ্রেশন অনুযায়ী মূল্যায়ন করার জন্য তথ্য এক্সট্র্যাক্ট করতে হবে। প্রযোজ্য নয় প্রয়োজনীয়

<Header> এলিমেন্ট

অনুরোধ ও উত্তরের হেডার থেকে তথ্য এক্সট্র্যাক্ট করতে হবে এবং প্রদত্ত রেগুলার এক্সপ্রেশন অনুযায়ী মূল্যায়ন করতে হবে। আপনাকে অন্তত একটি <Pattern> এলিমেন্ট প্রদান করতে হবে যা ম্যাচ করার জন্য রেগুলার এক্সপ্রেশন প্যাটার্ন নির্দিষ্ট করে।

<Header name="a-header">
  <Pattern>REGEX PATTERN</Pattern>
  <Pattern>REGEX PATTERN</Pattern>
</Header>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক
টাইপ: প্রযোজ্য নয়

অ্যাট্রিবিউট

অ্যাট্রিবিউট বিবরণ ডিফল্ট উপস্থিতি
নাম

প্রদত্ত রেগুলার এক্সপ্রেশন অনুযায়ী মূল্যায়ন করার জন্য অনুরোধ ও উত্তরের হেডার থেকে তথ্য এক্সট্র্যাক্ট করতে হবে।

প্রযোজ্য নয় প্রয়োজনীয়

<FormParam> এলিমেন্ট

অনুরোধের ফর্ম প্যারামিটার থেকে তথ্য এক্সট্র্যাক্ট করতে হবে এবং প্রদান করা রেগুলার এক্সপ্রেশন অনুযায়ী মূল্যায়ন করতে হবে। আপনাকে অন্তত একটি <Pattern> এলিমেন্ট প্রদান করতে হবে যা ম্যাচ করার জন্য রেগুলার এক্সপ্রেশন প্যাটার্ন নির্দিষ্ট করে।

<FormParam name="a-form-param">
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</FormParam>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক
টাইপ: প্রযোজ্য নয়

অ্যাট্রিবিউট

অ্যাট্রিবিউট বিবরণ ডিফল্ট উপস্থিতি
নাম

প্রদত্ত রেগুলার এক্সপ্রেশন অনুযায়ী মূল্যায়নের জন্য অনুরোধ ফর্মের যে প্যারামিটার থেকে তথ্য এক্সট্র্যাক্ট করতে হবে তার নাম।

প্রযোজ্য নয় প্রয়োজনীয়

<Variable> এলিমেন্ট

নির্দিষ্ট করে যে প্রদত্ত ভেরিয়েবেল থেকে তথ্য এক্সট্র্যাক্ট করতে হবে এবং প্রদান করা রেগুলার এক্সপ্রেশন অনুযায়ী মূল্যায়ন করতে হবে।

<Variable name="request.content">
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</Variable>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক
টাইপ: প্রযোজ্য নয়

অ্যাট্রিবিউট

অ্যাট্রিবিউট বিবরণ ডিফল্ট উপস্থিতি
নাম

প্রদত্ত রেগুলার এক্সপ্রেশন অনুযায়ী মূল্যায়ন করার জন্য যে ভেরিয়েবল থেকে তথ্য এক্সট্র্যাক্ট করতে হবে তার নাম ।

প্রযোজ্য নয় প্রয়োজনীয়

<XMLPayload> এলিমেন্ট

এতে উল্লেখ করা হয়েছে যে XML পেলোড থেকে তথ্য এক্সট্র্যাক্ট করতে হবে এবং প্রদত্ত রেগুলার এক্সপ্রেশন অনুসারে মূল্যায়ন করতে হবে।

<XMLPayload>
   <Namespaces>
      <Namespace prefix="apigee">http://www.apigee.com</Namespace>
   </Namespaces>
   <XPath>
      <Expression>/apigee:Greeting/apigee:User</Expression>
      <Type>string</Type>
      <Pattern>REGEX PATTERN</Pattern>
      <Pattern>REGEX PATTERN</Pattern>
   </XPath>
</XMLPayload>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক
টাইপ: প্রযোজ্য নয়

<XMLPayload>/<Namespaces> এলিমেন্ট

XPath মূল্যায়ন করার সময় কোন নেমস্পেস ব্যবহার করা হবে তা নির্দিষ্ট করে।

<XMLPayload>
   <Namespaces>
      <Namespace prefix="apigee">http://www.apigee.com</Namespace>
   </Namespaces>
   <XPath>
      <Expression>/apigee:Greeting/apigee:User</Expression>
      <Type>string</Type>
      <Pattern>REGEX PATTERN</Pattern>
      <Pattern>REGEX PATTERN</Pattern>
   </XPath>
</XMLPayload>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক
টাইপ: স্ট্রিং

<XMLPayload>/<Namespaces>/<Namespace> এলিমেন্ট

XPath মূল্যায়ন করার সময় ব্যবহার করা প্রতিটি নেমস্পেস নির্দিষ্ট করে।
<Namespaces>
   <Namespace prefix="apigee">http://www.apigee.com</Namespace>
</Namespaces>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক
টাইপ: স্ট্রিং

অ্যাট্রিবিউট

অ্যাট্রিবিউট বিবরণ ডিফল্ট উপস্থিতি
উপসর্গ

প্রদত্ত নেমস্পেসকে উপযুক্ত করে তোলার জন্য একটি প্রিফিক্স প্রদান করে।

প্রযোজ্য নয় প্রয়োজনীয়

<XMLPayload>/<XPath> এলিমেন্ট

মূল্যায়ন করার জন্য XPath নির্দিষ্ট করে।
<XPath>
   <Expression>/apigee:Greeting/apigee:User</Expression>
   <Type>string</Type>
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</XPath>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক
টাইপ: প্রযোজ্য নয়

<XMLPayload>/<XPath>/<Expression> element

ভেরিয়েবলের জন্য নির্দিষ্ট করা XPath এক্সপ্রেশন উল্লেখ করে। শুধুমাত্র XPath 1.0 এক্সপ্রেশন কাজ করে। যেমন, <Expression>/company/employee[@age>=$request.header.age]</Expression> সেইসব কর্মচারীর বিবরণ এক্সট্র্যাক্ট করে যাদের বয়স request.header.age-এ উল্লেখ করা মানের সমান বা বেশি।
<XPath>
   <Expression>/apigee:Greeting/apigee:User</Expression>
   <Type>string</Type>
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</XPath>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক
টাইপ: স্ট্রিং

<XMLPayload>/<XPath>/<Type> element

ডেটার ধরন নির্দিষ্ট করে।
<XPath>
   <Expression>/apigee:Greeting/apigee:User</Expression>
   <Type>string</Type>
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</XPath>
ডিফল্ট: স্ট্রিং
উপস্থিতি: ঐচ্ছিক
টাইপ: স্ট্রিং
সঠিক মান:

স্ট্রিং। সঠিক ভ্যালুর মধ্যে string, boolean, int, long, float, double এবং nodeset পড়ে।

<XMLPayload>/<XPath>/<Pattern> এলিমেন্ট

রেগুলার এক্সপ্রেশন প্যাটার্নকে সংজ্ঞায়িত করে। আপনার<Pattern> এলিমেন্টে কোনও রেগুলার এক্সপ্রেশন থাকলে, তাতে XML-এর জন্য সংরক্ষিত অক্ষর (", &, ', <, বা .) থাকলে, সেটি যোগ করার আগে আপনাকে অবশ্যই XML-এনকোড করতে হবে।

<XPath>
   <Expression>/apigee:Greeting/apigee:User</Expression>
   <Type>string</Type>
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</XPath>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: প্রয়োজনীয়
টাইপ: স্ট্রিং

<JSONPayload> এলিমেন্ট

JSON পেলোড থেকে তথ্য এক্সট্র্যাক্ট করতে হবে এবং প্রদত্ত রেগুলার এক্সপ্রেশন অনুসারে মূল্যায়ন করতে হবে।

<JSONPayload>
   <JSONPath>
      <Expression>$.store.book[*].author</Expression>
      <Pattern>REGEX PATTERN</Pattern>
      <Pattern>REGEX PATTERN</Pattern>
   </JSONPath>
</JSONPayload>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক
টাইপ: প্রযোজ্য নয়

অ্যাট্রিবিউট

অ্যাট্রিবিউট বিবরণ ডিফল্ট উপস্থিতি
escapeSlashCharacter

<JSONPath>/<Pattern>-এ রেগুলার এক্সপ্রেশনে কোনও ফরওয়ার্ড স্ল্যাশ (/) ক্যারেক্টার এড়িয়ে যেতে true হিসেবে সেট করুন।

সত্য ঐচ্ছিক

<JSONPayload>/<JSONPath>/<Expression> এলিমেন্ট

ভেরিয়েবলের জন্য নির্দিষ্ট করা JSONPath এক্সপ্রেশন উল্লেখ করে।

<JSONPath>
   <Expression>$.store.book[*].author</Expression>
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</JSONPath>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক
টাইপ: স্ট্রিং

<JSONPayload>/<JSONPath>/<Pattern> এলিমেন্ট

রেগুলার এক্সপ্রেশন প্যাটার্নকে সংজ্ঞায়িত করে। আপনার <Pattern> এলিমেন্টে কোনও রেগুলার এক্সপ্রেশনে XML-এর জন্য সংরক্ষিত অক্ষর (", &, ', <, বা .) থাকলে, সেটি যোগ করার আগে আপনাকে অবশ্যই XML-এনকোড করতে হবে।

<JSONPath>
   <Expression>$.store.book[*].author</Expression>
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</JSONPath>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: প্রয়োজনীয়
টাইপ: স্ট্রিং

সমস্যার রেফারেন্স

এই নীতি কোনও সমস্যার কারণে ট্রিগার হলে, Edge-এর দ্বারা রিটার্ন করা সমস্যার কোড ও মেসেজ এবং ফল্ট ভেরিয়েবল এই বিভাগে বর্ণনা করা হয়েছে। আপনি যদি ফল্ট হ্যান্ডেল করার জন্য ফল্ট রুল ডেভেলপ করে থাকেন, তাহলে এই তথ্য জানা আপনার জন্য গুরুত্বপূর্ণ। আপনি কোনও সমস্যা ক্যাপচার করতে এবং নিজের কাস্টম সমস্যা তৈরি করতে চাইলে, নীতি সংক্রান্ত মূল এলিমেন্টে continueOnError="true" অ্যাট্রিবিউট সেট করুন। আরও জানতে, নীতি সংক্রান্ত সমস্যার ব্যাপারে আপনার যা জানা প্রয়োজন এবং সমস্যার সমাধান করা দেখুন।

Edge নীতি থেকে ফেরত আসা সমস্যার কোড সমস্যার কোড রেফারেন্স-এ বর্ণিত একটি সামঞ্জস্যপূর্ণ ফর্ম্যাট অনুসরণ করে।

রানটাইম সমস্যা

নীতি এক্সিকিউট করার সময় এই সমস্যা হতে পারে।

সমস্যার কোড মেসেজ
ExecutionFailed RegularExpressionProtection StepDefinition {0} এক্সিকিউট করা যায়নি। কারণ: {1}
InstantiationFailed RegularExpressionProtection StepDefinition {0} ইনস্ট্যানশিয়েট করা যায়নি
NonMessageVariable ভেরিয়েবল {0} মেসেজ হিসেবে সমাধান করা যায় না
SourceMessageNotAvailable {0} মেসেজটি RegularExpressionProtection StepDefinition {1}-এর জন্য উপলভ্য নয়
ThreatDetected {0}-এ রেগুলার এক্সপ্রেশন সংক্রান্ত হুমকি শনাক্ত করা হয়েছে: regex: {1} ইনপুট: {2}
VariableResolutionFailed ভেরিয়েবল {0} সমাধান করা যায়নি

ডিপ্লয়মেন্ট সংক্রান্ত সমস্যা

সমস্যার কোড মেসেজ এর সমাধান করুন
CannotBeConvertedToNodeset RegularExpressionProtection {0}: Result of xpath {1} cannot be converted to nodeset. প্রসঙ্গ {2}
DuplicatePrefix RegularExpressionProtection {0}: ডুপ্লিকেট উপসর্গ {1}
EmptyJSONPathExpression RegularExpressionProtection {0}: Empty JSONPath expression
EmptyXPathExpression RegularExpressionProtection {0}: Empty XPath expression
InvalidRegularExpression RegularExpressionProtection {0}: ভুল রেগুলার এক্সপ্রেশন {1}, প্রসঙ্গ {2}
JSONPathCompilationFailed RegularExpressionProtection {0}: jsonpath {1} কম্পাইল করা যায়নি। প্রসঙ্গ {2}
NONEmptyPrefixMappedToEmptyURI RegularExpressionProtection {0}: Non-empty prefix {1} cannot be mapped to empty uri
NoPatternsToEnforce RegularExpressionProtection {0}: {1}-এ প্রয়োগ করার মতো কোনও প্যাটার্ন নেই
NothingToEnforce RegularExpressionProtection {0}: URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload-এর মধ্যে অন্তত একটি বাধ্যতামূলক
XPathCompilationFailed RegularExpressionProtection {0}: xpath {1} কম্পাইল করা যায়নি। প্রসঙ্গ {2}

ফল্ট ভেরিয়েবল

এই নীতি কোনও সমস্যার কারণে ট্রিগার হলে, এইসব ভেরিয়েবল সেট করা হয়। আরও তথ্যের জন্য, নীতি সংক্রান্ত সমস্যার ব্যাপারে আপনার কী জানা প্রয়োজন দেখুন।

ভেরিয়েবল কোথায় উদাহরণ
fault.name="fault_name" fault_name হল ত্রুটির নাম, যা উপরে দেওয়া টেবিলে তালিকাভুক্ত করা হয়েছে। fault.name Matches "ThreatDetected"
regularexpressionprotection.policy_name.failed policy_name হল সেই নীতির ব্যবহারকারী-নির্দিষ্ট নাম যার কারণে সমস্যা হয়েছে। regularexpressionprotection.Regular-Expressions-Protection-1.failed = true

স্কিমা

সম্পর্কিত বিষয়

JSON থ্রেট সুরক্ষা সংক্রান্ত নীতি

XML থ্রেট সুরক্ষা সংক্রান্ত নীতি