অস্বীকৃতি ‐ অফ সার্ভিস উদ্বেগ
রেজেক্সেসের সাথে সর্বাধিক সাধারণ উদ্বেগ হ'ল অস্বীকৃত attack এর attack পরিষেবা আক্রমণ আক্রমণাত্মক - বা এমনকি সুপার-এক্সপোনেনশিয়াল হয়ে যাওয়া রোগগত নিদর্শনগুলির মাধ্যমে পরিষেবা আক্রমণ! - এবং তাই সমাধানের জন্য চিরকালের জন্য প্রদর্শিত হবে। এগুলি কেবলমাত্র নির্দিষ্ট ইনপুট ডেটাতে প্রদর্শিত হতে পারে তবে একটি সাধারণত এটি তৈরি করতে পারে যার মধ্যে এটি গুরুত্বপূর্ণ নয়।
এগুলি কোনটি হ'ল কিছুটা নির্ভর করবে আপনি যে রিজেক্স সংকলকটি ব্যবহার করছেন তা হ'ল, কারণ এর কয়েকটি সংকলনের সময় সনাক্ত করা যায়। রিজেক্স সংকলকগুলি যে পুনরাবৃত্তি বাস্তবায়ন করে থাকে তাদের অ-অগ্রগতি পরীক্ষা করার জন্য সাধারণত অন্তর্নির্মিত rec ইন রিকার্সন ‐ গভীরতার কাউন্টার থাকে।
নিয়মিত এক্সপ্রেশন ম্যাচিংয়ে রাশ কক্সের দুর্দান্ত 2007-এর পেপারটি সহজ এবং দ্রুত হতে পারে (তবে জাভা, পার্ল, পিএইচপি, পাইথন, রুবি, ...) ধীরে ধীরে সবচেয়ে আধুনিক এনএফএ, যেগুলি হেনরি স্পেনসারের কোড থেকে প্রাপ্ত বলে মনে হচ্ছে , তীব্র কর্মক্ষমতা ক্ষয় হয়, কিন্তু থম্পসন-স্টাইলের এনএফএ-তে কোনও সমস্যা নেই।
আপনি যদি কেবলমাত্র ডিএফএগুলির দ্বারা সমাধান করা যেতে পারে এমন নিদর্শনগুলি স্বীকার করেন তবে আপনি সেগুলি এই জাতীয়ভাবে সংকলন করতে পারেন এবং এগুলি সম্ভবত দ্রুততর চলবে। তবে এটি করতে সময় লাগে । কক্স কাগজ এই পদ্ধতির এবং এর পরিচারকদের বিষয় উল্লেখ করেছে। এটি সমস্ত ক্লাসিক সময় – মহাকাশ বাণিজ্য ‐ বন্ধে নেমে আসে।
ডিএফএর সাহায্যে আপনি এটি তৈরিতে বেশি সময় ব্যয় করেন (এবং আরও রাজ্য বরাদ্দ), তবে কোনও এনএফএর সাহায্যে আপনি এটি কার্যকর করতে আরও বেশি সময় ব্যয় করেন, যেহেতু এটি একই সাথে একাধিক রাজ্য হতে পারে, এবং ব্যাকট্র্যাকিং আপনার লাঞ্চ খেতে পারে - এবং আপনার সিপিইউ।
অস্বীকৃতি ‐ অফ সার্ভিস সলিউশন
উত্তাপের সাথে প্রতিযোগিতায় হেরে যাওয়া এই নিদর্শনগুলিকে সম্বোধন করার সম্ভবত সবচেয়ে যুক্তিসঙ্গত উপায় the মহাবিশ্বের মৃত্যু হ'ল তাদের এমন একটি টাইমার দিয়ে মোড়ানো যা কার্যকরভাবে তাদের মৃত্যুদন্ড কার্যকর করার জন্য সর্বাধিক পরিমাণ সময় দেয়। সাধারণত এটি বেশিরভাগ এইচটিটিপি সার্ভার সরবরাহ করে যে ডিফল্ট সময়সীমা থেকে অনেক কম হবে।
এগুলি বাস্তবায়নের বিভিন্ন উপায় রয়েছে, যা alarm(N)
সি স্তরে সাধারণ আকার তৈরি করে কিছু ধরণের try {}
ক্যাচ অ্যালার্ম ‐ ব্যাতিক্রমগুলি অবরুদ্ধ করে, একটি নতুন থ্রেড তৈরি করার সমস্ত উপায় যা এটিতে নির্মিত সময়সীমাবদ্ধতার সাথে বিশেষভাবে তৈরি।
কোড কলআউটস
কোড কলআউটগুলি স্বীকার করে এমন রেগেক্স ভাষায়, আপনি সংকলন করতে চলেছেন এমন স্ট্রিং থেকে এগুলি অনুমতি বা অস্বীকার করার জন্য কিছু ব্যবস্থা সরবরাহ করা উচিত । এমনকি কোড কলআউটগুলি কেবলমাত্র আপনি যে ভাষায় ব্যবহার করছেন সে কোডে কোড থাকলেও আপনার সেগুলি সীমাবদ্ধ করা উচিত; তাদের বাহ্যিক কোডটি কল করতে সক্ষম হতে হবে না, যদিও তারা পারেন তবে আপনার অনেক বড় সমস্যা হয়েছে got
উদাহরণ হিসেবে বলা যায়, পার্ল এক স্ট্রিং ক্ষেপক থেকে তৈরি regexes কোড কলআউট (, তারা রান সময়ে কম্পাইল করছি এই হবে) যদি না বিশেষ আভিধানিক-scoped pragma থাকতে পারে না use re "eval";
বর্তমান সুযোগ সক্রিয় হবে।
এই পদ্ধতিতে rm -rf *
উদাহরণস্বরূপ, সিস্টেম প্রোগ্রাম চালানোর জন্য কোনও কোড কলআউট থেকে কেউ ছিনিয়ে নিতে পারে না । কোড কলআউটগুলি তাই সুরক্ষিত - সংবেদনশীল, পার্ল তাদের সমস্ত ইন্টারপোলেটেড স্ট্রিংয়ে ডিফল্টরূপে অক্ষম করে এবং আপনাকে পুনরায় সক্ষম করতে আপনার পথের বাইরে যেতে হবে।
ব্যবহারকারী ‐ সংজ্ঞায়িত \ পি {দড়ি}
মত - এক নিরাপত্তা সংবেদনশীল ইউনিকোড-শৈলী বৈশিষ্ট্য এর সাথে সম্পর্কিত সমস্যা হয়েছে রয়ে \pM
, \p{Pd}
, \p{Pattern_Syntax}
, অথবা \p{Script=Greek}
- যে পারে কিছু Regex কম্পাইলার যে সমর্থন যে স্বরলিপি রয়েছে।
সমস্যাটি হ'ল এর মধ্যে কয়েকটিতে, সম্ভাব্য বৈশিষ্ট্যগুলির সেটটি ব্যবহারকারী ‐ এক্সটেনসিবল। তার মানে আপনি যে মত কিছু বিশেষ namepace নাম ফাংশন প্রকৃত কোড কলআউট হয়, কাস্টম বৈশিষ্ট্য থাকতে পারে \p{GoodChars}
বা \p{Class::Good_Characters}
। আপনার ভাষা কীভাবে এগুলি পরিচালনা করে তা দেখার মতো।
স্যান্ডবক্সিং
পার্লে, Safe
মডিউলটির মাধ্যমে একটি স্যান্ডবক্সযুক্ত বগি নেমস্পেসের দৃশ্যমানতার উপর নিয়ন্ত্রণ দেয়। অন্যান্য ভাষায় অনুরূপ স্যান্ডবক্সিং প্রযুক্তি সরবরাহ করা হয়। যদি এই জাতীয় ডিভাইসগুলি উপলভ্য থাকে তবে আপনি সেগুলি সন্ধান করতে পারেন কারণ এগুলি বিশেষত অবিশ্বস্ত কোডের সীমিত প্রয়োগের জন্য ডিজাইন করা হয়েছে।