{
"type": "email",
"seed": 42,
"count": 3,
"items": [
{
"value": "user@[192.168.1.1]",
"category": "ip_literal_domain",
"breaks": "Domain-parsing code that assumes the part after '@' is always a hostname (never a bracketed IP literal) fails to extract or validate the domain correctly.",
"safe_to_display": true
},
{
"value": "[email protected]",
"category": "punycode_domain",
"breaks": "The domain is punycode-encoded (an internationalized domain name). Domain allowlist or comparison logic that does not decode punycode may fail to recognize this as equivalent to its Unicode form, or fail to catch a homograph-spoofed lookalike domain encoded the same way.",
"safe_to_display": true
},
{
"value": "[email protected]",
"category": "plus_addressing",
"breaks": "Deduplication logic treating '[email protected]' and '[email protected]' as different accounts misses that most mail providers deliver both to the same inbox (sub-addressing, RFC 5233).",
"safe_to_display": true
}
]
}
curl --location --request GET 'https://zylalabs.com/api/13377/injection+test+string+generator+api/28556/generate+edge+case+test+data?type=email&count=3&seed=42' --header 'Authorization: Bearer YOUR_API_KEY'
{
"seed": 7,
"count": 2,
"rows": [
{
"user_email": {
"value": "a234567890123456789012345678901234567890123456789012345678901234@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com",
"category": "max_length_254",
"breaks": "This address is near the RFC 5321 maximum length of 254 characters. Database columns sized below that maximum truncate or reject it even though it is technically valid.",
"safe_to_display": true
},
"signup_at": {
"value": "2026-11-01T01:30:00-04:00",
"category": "dst_fall_back_ambiguous",
"breaks": "In US Eastern time, this local clock time occurs twice during the fall-back transition. Without an explicit fold indicator, converting it to UTC is genuinely ambiguous, and libraries may silently pick the wrong occurrence.",
"safe_to_display": true
}
},
{
"user_email": {
"value": "[email protected]",
"category": "plus_addressing",
"breaks": "Deduplication logic treating '[email protected]' and '[email protected]' as different accounts misses that most mail providers deliver both to the same inbox (sub-addressing, RFC 5233).",
"safe_to_display": true
},
"signup_at": {
"value": "2026-01-01T24:00:00",
"category": "midnight_as_24_00",
"breaks": "ISO 8601 permits 24:00:00 to represent midnight at the end of a day, but many parsers only accept 00:00:00 through 23:59:59 and reject this equally valid representation.",
"safe_to_display": true
}
}
]
}
curl --location --request POST 'https://zylalabs.com/api/13377/injection+test+string+generator+api/28557/generate+multi-field+test+fixture+rows' --header 'Authorization: Bearer YOUR_API_KEY'
--data-raw '{
"fields": {
"user_email": "email",
"signup_at": "datetime"
},
"count": 2,
"seed": 7
}'
{
"types": [
{
"type": "date",
"category_group": "datetimes",
"description": "Calendar-boundary and invalid-looking-but-real dates.",
"categories": [
"earliest_iso_year",
"far_future_sentinel",
"invalid_day_of_month",
"leap_day",
"pre_epoch",
"year_2038"
],
"entry_count": 6
},
{
"type": "datetime",
"category_group": "datetimes",
"description": "Timestamps at DST transitions, unusual UTC offsets, and precision boundaries.",
"categories": [
"dst_fall_back_ambiguous",
"dst_spring_forward_gap",
"leap_second",
"midnight_as_24_00",
"quarter_hour_offset",
"sub_microsecond_precision"
],
"entry_count": 7
},
{
"type": "email",
"category_group": "emails",
"description": "RFC 5322-valid but unusual email addresses.",
"categories": [
"comment_syntax",
"ip_literal_domain",
"max_length_254",
"mixed_case",
"plus_addressing",
"punycode_domain",
"quoted_local_part"
],
"entry_count": 7
},
{
"type": "email_display_name",
"category_group": "emails",
"description": "Display-name strings that can corrupt naively-built SMTP headers.",
"categories": [
"angle_bracket_in_display_name",
"comma_in_display_name",
"crlf_header_injection",
"null_byte",
"very_long_display_name"
],
"entry_count": 5
},
{
"type": "emoji_sequence",
"category_group": "unicode",
"description": "Multi-codepoint emoji: ZWJ sequences, skin-tone modifiers, flag sequences, keycaps.",
"categories": [
"flag_sequence",
"keycap_sequence",
"skin_tone_modifier",
"zwj_family",
"zwj_generic_pair"
],
"entry_count": 5
},
{
"type": "float",
"category_group": "numbers",
"description": "Floating-point values that are not representable in JSON, or that expose IEEE 754 rounding.",
"categories": [
"denormal_minimum",
"ieee754_rounding",
"infinity",
"not_a_number",
"scientific_notation"
],
"entry_count": 5
},
{
"type": "integer",
"category_group": "numbers",
"description": "Integer values at 32-bit and 64-bit signed boundaries.",
"categories": [
"int32_max_plus_one",
"int32_min_minus_one",
"int64_max",
"leading_zeros",
"negative_zero"
],
"entry_count": 5
},
{
"type": "json_key",
"category_group": "structural",
"description": "Strings intended for use as a JSON object key, including reserved and unsafe names.",
"categories": [
"dollar_prefix",
"embedded_dot",
"empty_string_key",
"numeric_string_key",
"prototype_pollution_key",
"very_long_key",
"whitespace_only_key"
],
"entry_count": 8
},
{
"type": "json_value",
"category_group": "structural",
"description": "JSON values at precision, nesting, and null/empty/missing boundaries.",
"categories": [
"boolean_as_string",
"empty_array",
"empty_object",
"explicit_null",
"float64_precision_loss",
"leading_zero_numeric_string"
],
"entry_count": 6
},
{
"type": "organization_name",
"category_group": "names",
"description": "Company/brand names with punctuation, leading digits, or unusual casing.",
"categories": [
"accented_character",
"ampersand",
"apostrophe",
"intentional_lowercase_brand",
"leading_digit",
"trailing_punctuation",
"very_long_legal_name"
],
"entry_count": 7
},
{
"type": "path_or_filename",
"category_group": "identifiers",
"description": "Filenames and paths that are legal but mishandled by common filesystem or validation code.",
"categories": [
"bare_parent_reference",
"leading_dot_hidden_file",
"max_length_255",
"path_traversal",
"reserved_windows_device_name",
"trailing_dot",
"trailing_space",
"unicode_normalization_mismatch"
],
"entry_count": 8
},
{
"type": "person_name",
"category_group": "names",
"description": "Names that break naive validation, splitting, or templating logic -- includes canonical injection probes.",
"categories": [
"apostrophe",
"emoji_in_name",
"leading_trailing_whitespace",
"mononym",
"multi_word_particle_surname",
"reserved_word",
"right_to_left_script",
"shell_metacharacter_probe",
"single_character",
"sql_injection_probe",
"ssti_probe",
"very_long_name",
"xss_probe"
],
"entry_count": 14
},
{
"type": "phone_number",
"category_group": "addresses_phones",
"description": "Phone numbers at E.164 length boundaries and common formatting variants.",
"categories": [
"e164_maximum_length",
"e164_near_minimum_length",
"extension_suffix",
"human_formatted_punctuation",
"leading_zero_national_format",
"long_country_code"
],
"entry_count": 6
},
{
"type": "postal_code",
"category_group": "addresses_phones",
"description": "Postal codes from formats that break US-centric assumptions.",
"categories": [
"canada_alternating_pattern",
"country_without_postal_code",
"eircode",
"embedded_hyphen",
"leading_zero_us_zip",
"uk_postcode_variable_length"
],
"entry_count": 6
},
{
"type": "unicode_string",
"category_group": "unicode",
"description": "Strings with combining marks, bidi overrides, zero-width characters, and homoglyphs.",
"categories": [
"astral_plane",
"bidi_override",
"byte_order_mark",
"combining_diacritic",
"combining_mark_stack",
"homoglyph",
"mixed_script",
"variation_selector",
"zero_width_space"
],
"entry_count": 9
},
{
"type": "uuid",
"category_group": "identifiers",
"description": "Syntactically valid UUIDs at sentinel and formatting boundaries.",
"categories": [
"invalid_version_nibble",
"max_uuid",
"nil_uuid",
"unhyphenated_form",
"uppercase_hex"
],
"entry_count": 5
}
],
"formats": [
"csv",
"json",
"text"
],
"max_count": 500
}
curl --location --request GET 'https://zylalabs.com/api/13377/injection+test+string+generator+api/28558/list+available+types+and+categories' --header 'Authorization: Bearer YOUR_API_KEY'
साइन अप करने के बाद, प्रत्येक डेवलपर को एक पर्सनल API एक्सेस की असाइन की जाती है, जो अक्षरों और अंकों का एक यूनिक संयोजन होता है, जिसका उपयोग हमारे API एंडपॉइंट तक पहुंचने के लिए किया जाता है। प्रमाणीकरण के लिए Injection Test String Generator API के साथ बस अपने बेयरर टोकन को Authorization हेडर में शामिल करें।
| हेडर | विवरण |
|---|---|
Authorization
|
आवश्यक
होना चाहिए Bearer access_key. जब आप सब्सक्राइब हों तो ऊपर "Your API Access Key" देखें।
|
कोई लंबी अवधि की प्रतिबद्धता नहीं। कभी भी अपग्रेड, डाउनग्रेड या कैंसल करें। फ्री ट्रायल में 50 रिक्वेस्ट तक शामिल हैं।
(वार्षिक बिलिंग के साथ 2 महीने बचाएँ 🎉)
अग्रणी कंपनियों का भरोसा
Edge case test data for QA and fuzz testing: Unicode, injection probes, boundary dates, float precision. 16 types, reproducible seeds, and every value explains what it breaks.
एज केस टेस्ट डेटा वह इनपुट है जो तकनीकी रूप से मान्य है लेकिन उन सीमाओं पर है जहाँ सॉफ़्टवेयर आमतौर पर विफल होता है - लीप-डे तारीखें 32-बिट सीमाओं पर पूर्णांक नाम जिनमें अपॉस्ट्रॉफ होते हैं कई कोड पॉइंट्स से बने इमोजी और विंडोज द्वारा आरक्षित फ़ाइल नाम सामान्य नकली डेटा जनरेटर विश्वसनीय डेटा उत्पन्न करते हैं एज केस डेटा वह होता है जो वास्तव में बugs ढूंढता है
फेकर, मोकारू और इसी तरह के उपकरण यथार्थवादी दिखने वाले डेटा के लिए अनुकूलित होते हैं - विश्वसनीय नाम, पते और तारीखें। यह एपीआई इसके विपरीत करती है: प्रत्येक मान इसलिए चुना गया है क्योंकि यह कुछ तोड़ता है। यह आपको यह भी बताती है कि यह क्या तोड़ता है, ताकि एक विफल परीक्षण तुरंत diagnosable हो न कि एक रहस्य।
एक साधी अंग्रेजी में समझाना कि किस विशिष्ट विफलता मोड को मूल्य प्रकट करने के लिए डिज़ाइन किया गया है उदाहरण के लिए कि 0.30000000000000004 वास्तव में IEEE 754 अंकगणना में 0.1 + 0.2 का परिणाम है और यह 0.3 के खिलाफ समानता जांच में विफल हो जाएगा यह एक कच्ची स्ट्रिंग को एक प्रलेखित परीक्षण केस में बदल देता है
हाँ एक बीज पास करें और वही मान हर बार स्थायी रूप से वापिस किए जाते हैं /v1 अंतबिंदुओं पर - सीआई टुकड़ों में पिन करना सुरक्षित है बीज को छोड़ दें और एक रैंडम生成 किया जाता है और प्रतिक्रिया में लौटाया जाता है ताकि आप बाद में उसी रन को दोबारा बना सकें
आठ समूहों में सोलह प्रकार: यूनिकोड स्ट्रिंग और इमोजी अनुक्रम, व्यक्ति और संगठन नाम, ईमेल और ईमेल प्रदर्शन नाम, तिथियाँ और दिनांक समय, पूर्णांक और फ्लोट, UUID और फ़ाइल पथ, डाक कोड और फोन नंबर, और JSON कुंजी और मान
हाँ POST /v1/generate एक फील्ड्स ऑब्जेक्ट को स्वीकार करता है जो आपके अपने फील्ड नामों को टाइप से मैप करता है और 500 पूर्ण पंक्तियाँ लौटाता है - प्रत्येक में 20 तक फील्ड - एक डेटाबेस या CI फिक्स्चर को शुरू करने के लिए तैयार।
यह मानक सुरक्षा परीक्षण मार्गदर्शिकाओं में प्रकाशित प्रकार के प्राधिकृत, हानिरहित पहचान प्रोब्स को शामिल करता है - एक SQL तात्त्विकता, एक बुनियादी XSS प्रोब, एक पथ यात्रा स्ट्रिंग। ये आपके स्वयं के इनपुट हैंडलिंग का परीक्षण करने के लिए हैं। कोई कार्यशील explot नहीं हैं, शेल पेलोड नहीं हैं, या CVE-विशिष्ट हमले की श्रृंखलाएँ नहीं हैं
यह दो अलग-अलग जोखिमों को भेदित करता है "झूठा" का अर्थ है कि इसका मूल्य UI में कच्चा दिखाने के लिए सुरक्षित नहीं है उदाहरण के लिए यह द्विदिश ओवरराइड एक फ़ाइल नाम को दृष्टिगत रूप से धोखा दे सकता है "सच" का अर्थ है कि इसे निष्क्रिय पाठ के रूप में प्रदर्शित करना सुरक्षित है हालांकि यह अभी भी उस बैकएंड कोड को तोड़ सकता है जो इसे प्रोसेस करता है यदि आप उपयोगकर्ताओं को उत्पन्न मान दिखाते हैं तो इसके लिए फ़िल्टर करें
हाँ — प्रारूप=csv, एक पंक्ति में एक कच्चा मान के लिए प्रारूप=text। डिफ़ॉल्ट रूप से, CSV कोशिकाएँ जो स्प्रेडशीट सूत्र निष्पादन को ट्रिगर करेंगी, नकार दी जाती हैं। यदि आप जानबूझकर अपने स्वयं के CSV आयात हैंडलिंग का परीक्षण कर रहे हैं तो csv_escape=false सेट करें
नहीं एपीआई स्थिति रहित है और इसमें कोई डेटाबेस नहीं है आप जो भी अनुरोध करते हैं और जो कुछ भी आपके लिए उत्पन्न होता है उसे कभी भी लॉग में नहीं लिखा जाता है केवल अनुरोध मेटाडेटा जैसे एंडपॉइंट स्थिति कोड और कौन सा प्रकार अनुरोध किया गया था