Test case
2 generated files · +2,101 −0test/inputs/json/priority/blns-object.json
Aobjective-c-compiledefault / QTTopLevel.h+628 −0
| @@ -0,0 +1,628 @@ | ||
| 1 | +// To parse this JSON: | |
| 2 | +// | |
| 3 | +// NSError *error; | |
| 4 | +// QTTopLevel *topLevel = [QTTopLevel fromJSON:json encoding:NSUTF8Encoding error:&error]; | |
| 5 | + | |
| 6 | +#import <Foundation/Foundation.h> | |
| 7 | + | |
| 8 | +@class QTTopLevel; | |
| 9 | +@class QTA; | |
| 10 | +@class QTB; | |
| 11 | +@class QTC; | |
| 12 | + | |
| 13 | +NS_ASSUME_NONNULL_BEGIN | |
| 14 | + | |
| 15 | +#pragma mark - Top-level marshaling functions | |
| 16 | + | |
| 17 | +QTTopLevel *_Nullable QTTopLevelFromData(NSData *data, NSError **error); | |
| 18 | +QTTopLevel *_Nullable QTTopLevelFromJSON(NSString *json, NSStringEncoding encoding, NSError **error); | |
| 19 | +NSData *_Nullable QTTopLevelToData(QTTopLevel *topLevel, NSError **error); | |
| 20 | +NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding encoding, NSError **error); | |
| 21 | + | |
| 22 | +#pragma mark - Object interfaces | |
| 23 | + | |
| 24 | +@interface QTTopLevel : NSObject | |
| 25 | +@property (nonatomic, strong) QTA *a; | |
| 26 | +@property (nonatomic, strong) QTB *b; | |
| 27 | +@property (nonatomic, strong) QTC *c; | |
| 28 | + | |
| 29 | ++ (_Nullable instancetype)fromJSON:(NSString *)json encoding:(NSStringEncoding)encoding error:(NSError *_Nullable *)error; | |
| 30 | ++ (_Nullable instancetype)fromData:(NSData *)data error:(NSError *_Nullable *)error; | |
| 31 | +- (NSString *_Nullable)toJSON:(NSStringEncoding)encoding error:(NSError *_Nullable *)error; | |
| 32 | +- (NSData *_Nullable)toData:(NSError *_Nullable *)error; | |
| 33 | +@end | |
| 34 | + | |
| 35 | +@interface QTA : NSObject | |
| 36 | +@property (nonatomic, copy) NSString *a; | |
| 37 | +@property (nonatomic, copy) NSString *a0; | |
| 38 | +@property (nonatomic, copy) NSString *a000; | |
| 39 | +@property (nonatomic, copy) NSString *a0000; | |
| 40 | +@property (nonatomic, copy) NSString *a1; | |
| 41 | +@property (nonatomic, copy) NSString *a100000000; | |
| 42 | +@property (nonatomic, copy) NSString *a1E02; | |
| 43 | +@property (nonatomic, copy) NSString *aAlert123T; | |
| 44 | +@property (nonatomic, copy) NSString *aFalse; | |
| 45 | +@property (nonatomic, copy) NSString *aHrefJava123456781112ScriptJavascriptAlert1XXXA; | |
| 46 | +@property (nonatomic, copy) NSString *aHrefJavascriptX09JavascriptAlert1IDFuzzelement1TestA; | |
| 47 | +@property (nonatomic, copy) NSString *aHrefJavascriptX0AJavascriptAlert1IDFuzzelement1TestA; | |
| 48 | +@property (nonatomic, copy) NSString *aHrefJavascriptX3AJavascriptAlert1IDFuzzelement1TestA; | |
| 49 | +@property (nonatomic, copy) NSString *aHrefX01JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 50 | +@property (nonatomic, copy) NSString *aHrefX05JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 51 | +@property (nonatomic, copy) NSString *aHrefX08JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 52 | +@property (nonatomic, copy) NSString *aHrefX09JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 53 | +@property (nonatomic, copy) NSString *aHrefX0CjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 54 | +@property (nonatomic, copy) NSString *aHrefX10JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 55 | +@property (nonatomic, copy) NSString *aHrefX11JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 56 | +@property (nonatomic, copy) NSString *aHrefX13JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 57 | +@property (nonatomic, copy) NSString *aHrefX17JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 58 | +@property (nonatomic, copy) NSString *aHrefX1FjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 59 | +@property (nonatomic, copy) NSString *aHrefXC2XA0JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 60 | +@property (nonatomic, copy) NSString *aHrefXE1X9AX80JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 61 | +@property (nonatomic, copy) NSString *aHrefXE1XA0X8EjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 62 | +@property (nonatomic, copy) NSString *aHrefXE2X80X83JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 63 | +@property (nonatomic, copy) NSString *aHrefXE2X80X84JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 64 | +@property (nonatomic, copy) NSString *aHrefXE2X80X86JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 65 | +@property (nonatomic, copy) NSString *aHrefXE2X80X87JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 66 | +@property (nonatomic, copy) NSString *aHrefXE2X80XA8JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 67 | +@property (nonatomic, copy) NSString *aNil; | |
| 68 | +@property (nonatomic, copy) NSString *aTRUE; | |
| 69 | +@property (nonatomic, copy) NSString *aTest; | |
| 70 | +@property (nonatomic, copy) NSString *aTrue; | |
| 71 | +@property (nonatomic, copy) NSString *abcDivStyleXExpX00RessionJavascriptAlert1DEF; | |
| 72 | +@property (nonatomic, copy) NSString *abcDivStyleXExpX5CressionJavascriptAlert1DEF; | |
| 73 | +@property (nonatomic, copy) NSString *abcDivStyleXX09ExpressionJavascriptAlert1DEF; | |
| 74 | +@property (nonatomic, copy) NSString *abcDivStyleXX0BexpressionJavascriptAlert1DEF; | |
| 75 | +@property (nonatomic, copy) NSString *abcDivStyleXX20ExpressionJavascriptAlert1DEF; | |
| 76 | +@property (nonatomic, copy) NSString *abcDivStyleXX3AexpressionJavascriptAlert1DEF; | |
| 77 | +@property (nonatomic, copy) NSString *abcDivStyleXXC2XA0ExpressionJavascriptAlert1DEF; | |
| 78 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X80ExpressionJavascriptAlert1DEF; | |
| 79 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X84ExpressionJavascriptAlert1DEF; | |
| 80 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X89ExpressionJavascriptAlert1DEF; | |
| 81 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X8BexpressionJavascriptAlert1DEF; | |
| 82 | +@property (nonatomic, copy) NSString *alert123; | |
| 83 | +@property (nonatomic, copy) NSString *alert123T; | |
| 84 | +@property (nonatomic, copy) NSString *alertXSS; | |
| 85 | +@property (nonatomic, copy) NSString *andU200BZEROWIDTHSPACEWhichAreInTheCCategoriesButAreOften; | |
| 86 | +@property (nonatomic, copy) NSString *another; | |
| 87 | +@property (nonatomic, copy) NSString *arsenalCanal; | |
| 88 | +@property (nonatomic, copy) NSString *autofocusOnkeyupJavascriptAlert123; | |
| 89 | +@property (nonatomic, copy) NSString *aux; | |
| 90 | +@property (nonatomic, copy) NSString *changingLengthWhenLowercased; | |
| 91 | +@property (nonatomic, copy) NSString *charactersWhichIncreaseInLength2To3BytesWhenLowercased; | |
| 92 | +@property (nonatomic, copy) NSString *classic; | |
| 93 | +@property (nonatomic, copy) NSString *commandInjectionRuby; | |
| 94 | +@property (nonatomic, copy) NSString *d; | |
| 95 | +@property (nonatomic, copy) NSString *dickVanDyke; | |
| 96 | +@property (nonatomic, copy) NSString *drHermanILibshitz; | |
| 97 | +@property (nonatomic, copy) NSString *empty; | |
| 98 | +@property (nonatomic, copy) NSString *envHome; | |
| 99 | +@property (nonatomic, copy) NSString *etcHosts; | |
| 100 | +@property (nonatomic, copy) NSString *etcPasswd00; | |
| 101 | +@property (nonatomic, copy) NSString *fontsAndHaveANumberOfSpecialBehaviors; | |
| 102 | +@property (nonatomic, copy) NSString *fooValBar; | |
| 103 | +@property (nonatomic, copy) NSString *home; | |
| 104 | +@property (nonatomic, copy) NSString *humanInjection; | |
| 105 | +@property (nonatomic, copy) NSString *iNVOkINGTHEFÈẸLINGOFCHÁOS; | |
| 106 | +@property (nonatomic, copy) NSString *ifImgSrcXOnerrorJavascriptAlert1; | |
| 107 | +@property (nonatomic, copy) NSString *ifScriptJavascriptAlert1Script; | |
| 108 | +@property (nonatomic, copy) NSString *imgSRCJavAscriptAlertXSS; | |
| 109 | +@property (nonatomic, copy) NSString *imgSRCJavX0AAscriptAlertXSS; | |
| 110 | +@property (nonatomic, copy) NSString *imgSRCJavX0DAscriptAlertXSS; | |
| 111 | +@property (nonatomic, copy) NSString *imgSrc106971189711599114105112116589710810111411640398883833941; | |
| 112 | +@property (nonatomic, copy) NSString *imgSrcX09XOnerrorJavascriptAlert1; | |
| 113 | +@property (nonatomic, copy) NSString *imgSrcX11XOnerrorJavascriptAlert1; | |
| 114 | +@property (nonatomic, copy) NSString *imgSrcXOnerrorX00JavascriptAlert1; | |
| 115 | +@property (nonatomic, copy) NSString *imgSrcXOnerrorX09JavascriptAlert1; | |
| 116 | +@property (nonatomic, copy) NSString *imgSrcXX09OnerrorJavascriptAlert1; | |
| 117 | +@property (nonatomic, copy) NSString *imgSrcXX10OnerrorJavascriptAlert1; | |
| 118 | +@property (nonatomic, copy) NSString *imgSrcXX11OnerrorJavascriptAlert1; | |
| 119 | +@property (nonatomic, copy) NSString *imgSrcXX12OnerrorJavascriptAlert1; | |
| 120 | +@property (nonatomic, copy) NSString *imgSrcXX13OnerrorJavascriptAlert1; | |
| 121 | +@property (nonatomic, copy) NSString *imgSrcXxxXX00OnerrorJavascriptAlert1; | |
| 122 | +@property (nonatomic, copy) NSString *imgSrcXxxXX0BonerrorJavascriptAlert1; | |
| 123 | +@property (nonatomic, copy) NSString *imgSrcXxxXX2FonerrorJavascriptAlert1; | |
| 124 | +@property (nonatomic, copy) NSString *imgX00SrcXOnerrorAlert1; | |
| 125 | +@property (nonatomic, copy) NSString *imgX10SrcXOnerrorJavascriptAlert1; | |
| 126 | +@property (nonatomic, copy) NSString *imgX13SrcXOnerrorJavascriptAlert1; | |
| 127 | +@property (nonatomic, copy) NSString *imgX32SrcXOnerrorJavascriptAlert1; | |
| 128 | +@property (nonatomic, copy) NSString *imgX39SrcXOnerrorJavascriptAlert1; | |
| 129 | +@property (nonatomic, copy) NSString *inf; | |
| 130 | +@property (nonatomic, copy) NSString *infinity; | |
| 131 | +@property (nonatomic, copy) NSString *innocuousStringsWhichMayBeBlockedByProfanityFiltersHTTPSEnWikipediaOrgWikiScunthorpeProblem; | |
| 132 | +@property (nonatomic, assign) BOOL isDontMakeAMap; | |
| 133 | +@property (nonatomic, copy) NSString *jimmyClitheroe; | |
| 134 | +@property (nonatomic, copy) NSString *kernelExit1; | |
| 135 | +@property (nonatomic, copy) NSString *knownCVEsAndVulnerabilities; | |
| 136 | +@property (nonatomic, copy) NSString *lightwaterCountryPark; | |
| 137 | +@property (nonatomic, copy) NSString *lpt2; | |
| 138 | +@property (nonatomic, copy) NSString *lpt3; | |
| 139 | +@property (nonatomic, copy) NSString *lsAl; | |
| 140 | +@property (nonatomic, copy) NSString *msdosWindowsSpecialFilenames; | |
| 141 | +@property (nonatomic, copy) NSString *nonWhitespaceC1ControlsU0080ThroughU0084AndU0086ThroughU009F; | |
| 142 | +@property (nonatomic, copy) NSString *none; | |
| 143 | +@property (nonatomic, copy) NSString *null; | |
| 144 | +@property (nonatomic, copy) NSString *one; | |
| 145 | +@property (nonatomic, copy) NSString *one0; | |
| 146 | +@property (nonatomic, copy) NSString *one1; | |
| 147 | +@property (nonatomic, copy) NSString *onfocusJaVaSCriptAlert123Autofocus; | |
| 148 | +@property (nonatomic, copy) NSString *or11; | |
| 149 | +@property (nonatomic, copy) NSString *penistoneCommunityChurch; | |
| 150 | +@property (nonatomic, copy) NSString *perlEPrintIMGSRCJava0ScriptAlertXSSOut; | |
| 151 | +@property (nonatomic, copy) NSString *prn; | |
| 152 | +@property (nonatomic, copy) NSString *romansInSussexCoUk; | |
| 153 | +@property (nonatomic, copy) NSString *s; | |
| 154 | +@property (nonatomic, copy) NSString *sUnSU; | |
| 155 | +@property (nonatomic, copy) NSString *scScriptRiptAlert123ScScriptRipt; | |
| 156 | +@property (nonatomic, copy) NSString *scriptAlert123ScriptX; | |
| 157 | +@property (nonatomic, copy) NSString *scriptInjection; | |
| 158 | +@property (nonatomic, copy) NSString *scriptSRCHTTPHaCkersOrgXSSJSB; | |
| 159 | +@property (nonatomic, copy) NSString *scriptSRCHTTPHaCkersOrgXSSJSSCRIPT; | |
| 160 | +@property (nonatomic, copy) NSString *scriptScriptAlert123Script; | |
| 161 | +@property (nonatomic, copy) NSString *scriptX00JavascriptAlert1Script; | |
| 162 | +@property (nonatomic, copy) NSString *scriptX09TypeTextJavascriptJavascriptAlert1Script; | |
| 163 | +@property (nonatomic, copy) NSString *scriptX0CjavascriptAlert1Script; | |
| 164 | +@property (nonatomic, copy) NSString *scriptX0DjavascriptAlert1Script; | |
| 165 | +@property (nonatomic, copy) NSString *scriptX20TypeTextJavascriptJavascriptAlert1Script; | |
| 166 | +@property (nonatomic, copy) NSString *scriptX3EtypeTextJavascriptJavascriptAlert1Script; | |
| 167 | +@property (nonatomic, copy) NSString *scriptXC2X85JavascriptAlert1Script; | |
| 168 | +@property (nonatomic, copy) NSString *scriptXC2XA0JavascriptAlert1Script; | |
| 169 | +@property (nonatomic, copy) NSString *scriptXE1X9AX80JavascriptAlert1Script; | |
| 170 | +@property (nonatomic, copy) NSString *scriptXE1XA0X8EjavascriptAlert1Script; | |
| 171 | +@property (nonatomic, copy) NSString *scriptXE2X80X81JavascriptAlert1Script; | |
| 172 | +@property (nonatomic, copy) NSString *scriptXE2X80X86JavascriptAlert1Script; | |
| 173 | +@property (nonatomic, copy) NSString *scriptXE2X80X89JavascriptAlert1Script; | |
| 174 | +@property (nonatomic, copy) NSString *scriptXE2X81X9FjavascriptAlert1Script; | |
| 175 | +@property (nonatomic, copy) NSString *scriptXEFXBBXBFjavascriptAlert1Script; | |
| 176 | +@property (nonatomic, copy) NSString *scriptXF0X90X96X9AjavascriptAlert1Script; | |
| 177 | +@property (nonatomic, copy) NSString *scriptXSSSRCHTTPHaCkersOrgXSSJSSCRIPT; | |
| 178 | +@property (nonatomic, copy) NSString *some; | |
| 179 | +@property (nonatomic, copy) NSString *some0; | |
| 180 | +@property (nonatomic, copy) NSString *sqlInjection; | |
| 181 | +@property (nonatomic, copy) NSString *stringWhichCanRevealSystemFilesWhenParsedByABadlyConfiguredXMLParser; | |
| 182 | +@property (nonatomic, copy) NSString *stringsThatTestForKnownVulnerabilities; | |
| 183 | +@property (nonatomic, copy) NSString *stringsWhichCanBeAccidentallyExpandedIntoDifferentStringsIfEvaluatedInTheWrongContextEGUsedAsAPrintfFormatStringOrViaPERLOrShellEvalMightExposeSensitiveDataFromTheProgramDoingTheInterpolationOrMightJustRepresentTheWrongString; | |
| 184 | +@property (nonatomic, copy) NSString *stringsWhichCanCallSystemCommandsWithinRubyRailsApplications; | |
| 185 | +@property (nonatomic, copy) NSString *stringsWhichConsistsOfJapaneseStyleEmoticonsWhichArePopularOnTheWeb; | |
| 186 | +@property (nonatomic, copy) NSString *stringsWhichContainBoldItalicEtcVersionsOfNormalCharacters; | |
| 187 | +@property (nonatomic, copy) NSString *stringsWhichContainCommonUnicodeSymbolsEGSmartQuotes; | |
| 188 | +@property (nonatomic, copy) NSString *stringsWhichContainEmojiShouldBeTheSameBehaviorAsTwoByteCharactersButNotAlways; | |
| 189 | +@property (nonatomic, copy) NSString *stringsWhichContainMisplacedQuotationMarksCanCauseEncodingErrors; | |
| 190 | +@property (nonatomic, copy) NSString *stringsWhichContainUnicodeSubscriptsSuperscriptsCanCauseRenderingIssues; | |
| 191 | +@property (nonatomic, copy) NSString *stringsWhichCrashedIMessageInVariousVersionsOfIOS; | |
| 192 | +@property (nonatomic, copy) NSString *stringsWhichMayCauseHumanToReinterpretWorldview; | |
| 193 | +@property (nonatomic, copy) NSString *superBowlXXX; | |
| 194 | +@property (nonatomic, copy) NSString *test; | |
| 195 | +@property (nonatomic, copy) NSString *textareaScriptAlert123Script; | |
| 196 | +@property (nonatomic, copy) NSString *the; | |
| 197 | +@property (nonatomic, copy) NSString *the0; | |
| 198 | +@property (nonatomic, copy) NSString *the00; | |
| 199 | +@property (nonatomic, copy) NSString *the000; | |
| 200 | +@property (nonatomic, copy) NSString *the0000; | |
| 201 | +@property (nonatomic, copy) NSString *the00Ɩ; | |
| 202 | +@property (nonatomic, copy) NSString *the0X0; | |
| 203 | +@property (nonatomic, copy) NSString *the1; | |
| 204 | +@property (nonatomic, copy) NSString *the10; | |
| 205 | +@property (nonatomic, copy) NSString *the100; | |
| 206 | +@property (nonatomic, copy) NSString *the1000; | |
| 207 | +@property (nonatomic, copy) NSString *the100000; | |
| 208 | +@property (nonatomic, copy) NSString *the100000000; | |
| 209 | +@property (nonatomic, copy) NSString *the11; | |
| 210 | +@property (nonatomic, copy) NSString *the12; | |
| 211 | +@property (nonatomic, copy) NSString *the123456789012345678901234567890123456789; | |
| 212 | +@property (nonatomic, copy) NSString *the13; | |
| 213 | +@property (nonatomic, copy) NSString *the14; | |
| 214 | +@property (nonatomic, copy) NSString *the15; | |
| 215 | +@property (nonatomic, copy) NSString *the16; | |
| 216 | +@property (nonatomic, copy) NSString *the17; | |
| 217 | +@property (nonatomic, copy) NSString *the18; | |
| 218 | +@property (nonatomic, copy) NSString *the19; | |
| 219 | +@property (nonatomic, copy) NSString *the1DROPTABLEUsers; | |
| 220 | +@property (nonatomic, copy) NSString *the1E02; | |
| 221 | +@property (nonatomic, copy) NSString *the1E2; | |
| 222 | +@property (nonatomic, copy) NSString *the1Qnan; | |
| 223 | +@property (nonatomic, copy) NSString *the1Snan; | |
| 224 | +@property (nonatomic, copy) NSString *the2; | |
| 225 | +@property (nonatomic, copy) NSString *the20; | |
| 226 | +@property (nonatomic, copy) NSString *the21; | |
| 227 | +@property (nonatomic, copy) NSString *the22; | |
| 228 | +@property (nonatomic, copy) NSString *the23; | |
| 229 | +@property (nonatomic, copy) NSString *the3; | |
| 230 | +@property (nonatomic, copy) NSString *the4; | |
| 231 | +@property (nonatomic, copy) NSString *the5; | |
| 232 | +@property (nonatomic, copy) NSString *the6; | |
| 233 | +@property (nonatomic, copy) NSString *the7; | |
| 234 | +@property (nonatomic, copy) NSString *the8; | |
| 235 | +@property (nonatomic, copy) NSString *the9; | |
| 236 | +@property (nonatomic, copy) NSString *the999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999; | |
| 237 | +@property (nonatomic, copy) NSString *theFalse; | |
| 238 | +@property (nonatomic, copy) NSString *theNextTwoLinesMayAppearToBeBlankOrMojibakeInSomeViewers; | |
| 239 | +@property (nonatomic, copy) NSString *theQuicKBrownFoXBeeeep; | |
| 240 | +@property (nonatomic, copy) NSString *theTest; | |
| 241 | +@property (nonatomic, copy) NSString *the٠١٢٣٤٥٦٧٨٩; | |
| 242 | +@property (nonatomic, copy) NSString *twoByteCharacters; | |
| 243 | +@property (nonatomic, copy) NSString *u0000U000AOrU000DNULLFCR; | |
| 244 | +@property (nonatomic, copy) NSString *uOncopyAlertCopyMeU; | |
| 245 | +@property (nonatomic, copy) NSString *undef; | |
| 246 | +@property (nonatomic, copy) NSString *unicodeFont; | |
| 247 | +@property (nonatomic, copy) NSString *unicodeNumbers; | |
| 248 | +@property (nonatomic, copy) NSString *unwantedInterpolation; | |
| 249 | +@property (nonatomic, copy) NSString *xLsAl; | |
| 250 | +@property (nonatomic, copy) NSString *zḀḶGO; | |
| 251 | +@property (nonatomic, copy) NSString *ªº; | |
| 252 | +@property (nonatomic, copy) NSString *çIÂ; | |
| 253 | +@property (nonatomic, copy) NSString *œÁØ; | |
| 254 | +@property (nonatomic, copy) NSString *œØπ; | |
| 255 | +@property (nonatomic, copy) NSString *ʖ; | |
| 256 | +@property (nonatomic, copy) NSString *הָיְתָהTestالصفحاتالتّحول; | |
| 257 | +@property (nonatomic, copy) NSString *ثمنفسسقطتوبالتحديدجزيرتيباستخدامأندنوإذهناالستاروتنصيبكانأهّلايطاليابريطانيافرنساقدأخذسليمانإتفاقيةبينمايذكرالحدودأيبعدمعاملةبولنداالإطلاقعلإيو; | |
| 258 | +@property (nonatomic, copy) NSString *ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็; | |
| 259 | +@property (nonatomic, copy) NSString *ⱥ; | |
| 260 | +@property (nonatomic, copy) NSString *ⱦ; | |
| 261 | +@property (nonatomic, copy) NSString *パーティーへ行かないか; | |
| 262 | +@property (nonatomic, copy) NSString *和製漢語; | |
| 263 | +@property (nonatomic, copy) NSString *田中さんにあげて下さい; | |
| 264 | +@property (nonatomic, copy) NSString *fifl; | |
| 265 | +@property (nonatomic, copy) NSString *ィ; | |
| 266 | +@end | |
| 267 | + | |
| 268 | +@interface QTB : NSObject | |
| 269 | +@property (nonatomic, copy) NSString *aHrefHTTPFooBarXYAImgAltImgSrcXXOnerrorJavascriptAlert1A; | |
| 270 | +@property (nonatomic, copy) NSString *aHrefJavascriptX00JavascriptAlert1IDFuzzelement1TestA; | |
| 271 | +@property (nonatomic, copy) NSString *aHrefJavascriptX0DJavascriptAlert1IDFuzzelement1TestA; | |
| 272 | +@property (nonatomic, copy) NSString *aHrefX02JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 273 | +@property (nonatomic, copy) NSString *aHrefX04JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 274 | +@property (nonatomic, copy) NSString *aHrefX0AjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 275 | +@property (nonatomic, copy) NSString *aHrefX0DjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 276 | +@property (nonatomic, copy) NSString *aHrefX0EjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 277 | +@property (nonatomic, copy) NSString *aHrefX0FjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 278 | +@property (nonatomic, copy) NSString *aHrefX16JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 279 | +@property (nonatomic, copy) NSString *aHrefX19JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 280 | +@property (nonatomic, copy) NSString *aHrefX1AjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 281 | +@property (nonatomic, copy) NSString *aHrefX1DjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 282 | +@property (nonatomic, copy) NSString *aHrefX1EjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 283 | +@property (nonatomic, copy) NSString *aHrefXE2X80X81JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 284 | +@property (nonatomic, copy) NSString *aHrefXE2X80X82JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 285 | +@property (nonatomic, copy) NSString *aHrefXE2X80XA9JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 286 | +@property (nonatomic, copy) NSString *aHrefXE2X80XAFjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 287 | +@property (nonatomic, copy) NSString *abcDivStyleXExpressionX5CJavascriptAlert1DEF; | |
| 288 | +@property (nonatomic, copy) NSString *abcDivStyleXX0AexpressionJavascriptAlert1DEF; | |
| 289 | +@property (nonatomic, copy) NSString *abcDivStyleXX0DexpressionJavascriptAlert1DEF; | |
| 290 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X82ExpressionJavascriptAlert1DEF; | |
| 291 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X83ExpressionJavascriptAlert1DEF; | |
| 292 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X85ExpressionJavascriptAlert1DEF; | |
| 293 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X87ExpressionJavascriptAlert1DEF; | |
| 294 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X8AexpressionJavascriptAlert1DEF; | |
| 295 | +@property (nonatomic, copy) NSString *another; | |
| 296 | +@property (nonatomic, copy) NSString *appearInInput; | |
| 297 | +@property (nonatomic, copy) NSString *ath0; | |
| 298 | +@property (nonatomic, copy) NSString *autofocusOnkeyupJavascriptAlert123; | |
| 299 | +@property (nonatomic, copy) NSString *b; | |
| 300 | +@property (nonatomic, copy) NSString *b100000; | |
| 301 | +@property (nonatomic, copy) NSString *bFALSE; | |
| 302 | +@property (nonatomic, copy) NSString *bIMGSRCOnmouseoverAlertXxs; | |
| 303 | +@property (nonatomic, copy) NSString *bNIL; | |
| 304 | +@property (nonatomic, copy) NSString *bScriptAlert123Script; | |
| 305 | +@property (nonatomic, copy) NSString *bTouchTmpBlnsFail; | |
| 306 | +@property (nonatomic, copy) NSString *basement; | |
| 307 | +@property (nonatomic, copy) NSString *butNow20CforMyGreatestTrick8M; | |
| 308 | +@property (nonatomic, copy) NSString *byteOrderMarksUFEFFAndUFFFEEachOnItsOwnLine; | |
| 309 | +@property (nonatomic, copy) NSString *com1; | |
| 310 | +@property (nonatomic, copy) NSString *com3; | |
| 311 | +@property (nonatomic, copy) NSString *commonlyMisinterpretedAsAdditionalGraphicCharacters; | |
| 312 | +@property (nonatomic, copy) NSString *con; | |
| 313 | +@property (nonatomic, copy) NSString *contextsDividedIntoThreeGroupsBasedOnUSLayoutKeyboardPosition; | |
| 314 | +@property (nonatomic, copy) NSString *creditHTTPSTwitterCOMJifaStatus625776454479970304; | |
| 315 | +@property (nonatomic, copy) NSString *devNullTouchTmpBlnsFailEcho; | |
| 316 | +@property (nonatomic, copy) NSString *empty; | |
| 317 | +@property (nonatomic, copy) NSString *evalPutsHelloWorld; | |
| 318 | +@property (nonatomic, copy) NSString *expression; | |
| 319 | +@property (nonatomic, copy) NSString *file; | |
| 320 | +@property (nonatomic, copy) NSString *fileInclusion; | |
| 321 | +@property (nonatomic, copy) NSString *fooValBar; | |
| 322 | +@property (nonatomic, copy) NSString *generalCategoryCFInUnicode800; | |
| 323 | +@property (nonatomic, copy) NSString *hEWHOWAĮTSBEHINDTHEWALḼ; | |
| 324 | +@property (nonatomic, copy) NSString *help; | |
| 325 | +@property (nonatomic, copy) NSString *httpA3030; | |
| 326 | +@property (nonatomic, copy) NSString *iOSVulnerabilities; | |
| 327 | +@property (nonatomic, copy) NSString *ifYouReReadingThisYouVeBeenInAComaForAlmost20YearsNowWeReTryingANewTechniqueWeDonTKnowWhereThisMessageWillEndUpInYourDreamButWeHopeItWorksPleaseWakeUpWeMissYou; | |
| 328 | +@property (nonatomic, copy) NSString *iframeSrcHTTPHaCkersOrgScriptletHTML; | |
| 329 | +@property (nonatomic, copy) NSString *imgSRC14JavascriptAlertXSS; | |
| 330 | +@property (nonatomic, copy) NSString *imgSRCJavX09AscriptAlertXSS; | |
| 331 | +@property (nonatomic, copy) NSString *imgSRCOnmouseoverAlertXxs; | |
| 332 | +@property (nonatomic, copy) NSString *imgSRCX6AX61X76X61X73X63X72X69X70X74X3AX61X6CX65X72X74X28X27X58X53X53X27X29; | |
| 333 | +@property (nonatomic, copy) NSString *imgSrc00001060000097000011800000970000115000009900001140000105000011200001160000058000009700001080000101000011400001160000040000003900000880000083000008300000390000041; | |
| 334 | +@property (nonatomic, copy) NSString *imgSrcX00XOnerrorJavascriptAlert1; | |
| 335 | +@property (nonatomic, copy) NSString *imgSrcXOnerrorX11JavascriptAlert1; | |
| 336 | +@property (nonatomic, copy) NSString *imgSrcXOnerrorX12JavascriptAlert1; | |
| 337 | +@property (nonatomic, copy) NSString *imgSrcXxxXX0AonerrorJavascriptAlert1; | |
| 338 | +@property (nonatomic, copy) NSString *imgSrcXxxXX0ConerrorJavascriptAlert1; | |
| 339 | +@property (nonatomic, copy) NSString *imgSrcXxxXX0DonerrorJavascriptAlert1; | |
| 340 | +@property (nonatomic, copy) NSString *imgX00SrcXOnerrorJavascriptAlert1; | |
| 341 | +@property (nonatomic, copy) NSString *imgX11SrcXOnerrorJavascriptAlert1; | |
| 342 | +@property (nonatomic, copy) NSString *imgX12SrcXOnerrorJavascriptAlert1; | |
| 343 | +@property (nonatomic, copy) NSString *imgX47SrcXOnerrorJavascriptAlert1; | |
| 344 | +@property (nonatomic, copy) NSString *ircSpecificStrings; | |
| 345 | +@property (nonatomic, assign) BOOL isDontMakeAMap; | |
| 346 | +@property (nonatomic, copy) NSString *japaneseEmoticons; | |
| 347 | +@property (nonatomic, copy) NSString *kernelExecLsAl; | |
| 348 | +@property (nonatomic, copy) NSString *lindaCallahan; | |
| 349 | +@property (nonatomic, copy) NSString *nul; | |
| 350 | +@property (nonatomic, copy) NSString *null; | |
| 351 | +@property (nonatomic, copy) NSString *numericStrings; | |
| 352 | +@property (nonatomic, copy) NSString *oftenForbiddenToAppearInVariousTextBasedFileFormatsEGXML; | |
| 353 | +@property (nonatomic, copy) NSString *one; | |
| 354 | +@property (nonatomic, copy) NSString *onfocusJaVaSCriptAlert123Autofocus; | |
| 355 | +@property (nonatomic, copy) NSString *or111; | |
| 356 | +@property (nonatomic, copy) NSString *quotationMarks; | |
| 357 | +@property (nonatomic, copy) NSString *regionalIndicatorSymbols; | |
| 358 | +@property (nonatomic, copy) NSString *regionalIndicatorSymbolsCanBeDisplayedDifferentlyAcross; | |
| 359 | +@property (nonatomic, copy) NSString *reservedStrings; | |
| 360 | +@property (nonatomic, copy) NSString *scriptAlert123Script; | |
| 361 | +@property (nonatomic, copy) NSString *scriptAlert123ScriptX; | |
| 362 | +@property (nonatomic, copy) NSString *scriptAlertXSSSCRIPT; | |
| 363 | +@property (nonatomic, copy) NSString *scriptSRCHaCkersOrgJ; | |
| 364 | +@property (nonatomic, copy) NSString *scriptSrcJscriptSScript; | |
| 365 | +@property (nonatomic, copy) NSString *scriptX09JavascriptAlert1Script; | |
| 366 | +@property (nonatomic, copy) NSString *scriptX0AtypeTextJavascriptJavascriptAlert1Script; | |
| 367 | +@property (nonatomic, copy) NSString *scriptX0DtypeTextJavascriptJavascriptAlert1Script; | |
| 368 | +@property (nonatomic, copy) NSString *scriptX21JavascriptAlert1Script; | |
| 369 | +@property (nonatomic, copy) NSString *scriptX3BjavascriptAlert1Script; | |
| 370 | +@property (nonatomic, copy) NSString *scriptXE2X80X85JavascriptAlert1Script; | |
| 371 | +@property (nonatomic, copy) NSString *scriptXE2X80X87JavascriptAlert1Script; | |
| 372 | +@property (nonatomic, copy) NSString *scriptXE2X80X8AjavascriptAlert1Script; | |
| 373 | +@property (nonatomic, copy) NSString *scriptXE2X80XA8JavascriptAlert1Script; | |
| 374 | +@property (nonatomic, copy) NSString *scriptXE2X80XA9JavascriptAlert1Script; | |
| 375 | +@property (nonatomic, copy) NSString *scriptXE2X80XAFjavascriptAlert1Script; | |
| 376 | +@property (nonatomic, copy) NSString *scriptXE3X80X80JavascriptAlert1Script; | |
| 377 | +@property (nonatomic, copy) NSString *scunthorpeProblem; | |
| 378 | +@property (nonatomic, copy) NSString *some; | |
| 379 | +@property (nonatomic, copy) NSString *stringsThatMayOccurOnIRCClientsThatMakeSecurityProductsFreakOut; | |
| 380 | +@property (nonatomic, copy) NSString *stringsWhichAreReservedCharactersInMSDOSWindows; | |
| 381 | +@property (nonatomic, copy) NSString *stringsWhichAttemptToInvokeABenignScriptInjectionShowsVulnerabilityToXSS; | |
| 382 | +@property (nonatomic, copy) NSString *stringsWhichContainTextThatShouldBeRenderedRTLIfPossibleEGArabicHebrew; | |
| 383 | +@property (nonatomic, copy) NSString *stringsWhichContainTwoByteCharactersCanCauseRenderingIssuesOrCharacterLengthIssues; | |
| 384 | +@property (nonatomic, copy) NSString *stringsWhichContainUnicodeNumbersIfTheCodeIsLocalizedItShouldSeeTheInputAsNumeric; | |
| 385 | +@property (nonatomic, copy) NSString *stringsWhichMayBeUsedElsewhereInCode; | |
| 386 | +@property (nonatomic, copy) NSString *terminalEscapeCodes; | |
| 387 | +@property (nonatomic, copy) NSString *the; | |
| 388 | +@property (nonatomic, copy) NSString *the000; | |
| 389 | +@property (nonatomic, copy) NSString *the01000; | |
| 390 | +@property (nonatomic, copy) NSString *the08; | |
| 391 | +@property (nonatomic, copy) NSString *the09; | |
| 392 | +@property (nonatomic, copy) NSString *the0Xffffffffffffffff; | |
| 393 | +@property (nonatomic, copy) NSString *the1; | |
| 394 | +@property (nonatomic, copy) NSString *the100; | |
| 395 | +@property (nonatomic, copy) NSString *the1000; | |
| 396 | +@property (nonatomic, copy) NSString *the100000; | |
| 397 | +@property (nonatomic, copy) NSString *the100000000; | |
| 398 | +@property (nonatomic, copy) NSString *the1DROPTABLEUsers1; | |
| 399 | +@property (nonatomic, copy) NSString *the1Ind; | |
| 400 | +@property (nonatomic, copy) NSString *the1Inf; | |
| 401 | +@property (nonatomic, copy) NSString *the2; | |
| 402 | +@property (nonatomic, copy) NSString *the21474836481; | |
| 403 | +@property (nonatomic, copy) NSString *the22250738585072011E308; | |
| 404 | +@property (nonatomic, copy) NSString *the3; | |
| 405 | +@property (nonatomic, copy) NSString *theNextLineMayAppearToBeBlankMojibakeOrDingbatsInSomeViewers; | |
| 406 | +@property (nonatomic, copy) NSString *theNextLineMayAppearToBeBlankOrMojibakeInSomeViewers; | |
| 407 | +@property (nonatomic, copy) NSString *theNextLineMayBeFlaggedForTrailingWhitespaceInSomeViewers; | |
| 408 | +@property (nonatomic, copy) NSString *theScriptAlert123Script; | |
| 409 | +@property (nonatomic, copy) NSString *the123; | |
| 410 | +@property (nonatomic, copy) NSString *thisFileUnfortunatelyCannotExpressStringsContaining; | |
| 411 | +@property (nonatomic, copy) NSString *touchTmpBlnsFail; | |
| 412 | +@property (nonatomic, copy) NSString *touchTmpBlnsShellshock2Fail; | |
| 413 | +@property (nonatomic, copy) NSString *tysonGay; | |
| 414 | +@property (nonatomic, copy) NSString *unicodeSymbols; | |
| 415 | +@property (nonatomic, copy) NSString *x00ScriptJavascriptAlert1Script; | |
| 416 | +@property (nonatomic, copy) NSString *x3CscriptJavascriptAlert1Script; | |
| 417 | +@property (nonatomic, copy) NSString *åßƑÆ; | |
| 418 | +@property (nonatomic, copy) NSString *ɐnbᴉlɐⱯuƃɐɯƎɹolopꞱǝƎɹoqɐlꞱnꞱunpᴉpᴉɔuᴉɹodɯǝʇPoɯsnᴉǝOpPǝsꞱᴉlǝƂuᴉɔsᴉdᴉpɐɹnʇǝʇɔǝsuoɔꞱǝɯɐꞱᴉsɹolopƜnsdᴉƜǝɹo; | |
| 419 | +@property (nonatomic, copy) NSString *ωÇΜ; | |
| 420 | +@property (nonatomic, copy) NSString *ຈل͜ຈノヽຈل͜ຈノ; | |
| 421 | +@property (nonatomic, copy) NSString *ṱOINVOKèTHEHIVEMINDREPRESEǸTINGCHAOS; | |
| 422 | +@property (nonatomic, copy) NSString *社會科學院語學研究所; | |
| 423 | +@property (nonatomic, copy) NSString *部落格; | |
| 424 | +@property (nonatomic, copy) NSString *사회과학원어학연구소; | |
| 425 | +@property (nonatomic, copy) NSString *찦차를타고온펲시맨과쑛다리똠방각하; | |
| 426 | +@property (nonatomic, copy) NSString *ﷺ; | |
| 427 | +@property (nonatomic, copy) NSString *ロ_; | |
| 428 | +@end | |
| 429 | + | |
| 430 | +@interface QTC : NSObject | |
| 431 | +@property (nonatomic, copy) NSString *_1; | |
| 432 | +@property (nonatomic, copy) NSString *a; | |
| 433 | +@property (nonatomic, copy) NSString *aHrefX00JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 434 | +@property (nonatomic, copy) NSString *aHrefX03JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 435 | +@property (nonatomic, copy) NSString *aHrefX06JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 436 | +@property (nonatomic, copy) NSString *aHrefX07JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 437 | +@property (nonatomic, copy) NSString *aHrefX0BjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 438 | +@property (nonatomic, copy) NSString *aHrefX12JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 439 | +@property (nonatomic, copy) NSString *aHrefX14JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 440 | +@property (nonatomic, copy) NSString *aHrefX15JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 441 | +@property (nonatomic, copy) NSString *aHrefX18JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 442 | +@property (nonatomic, copy) NSString *aHrefX1BjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 443 | +@property (nonatomic, copy) NSString *aHrefX1CjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 444 | +@property (nonatomic, copy) NSString *aHrefX20JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 445 | +@property (nonatomic, copy) NSString *aHrefXE2X80X80JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 446 | +@property (nonatomic, copy) NSString *aHrefXE2X80X85JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 447 | +@property (nonatomic, copy) NSString *aHrefXE2X80X88JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 448 | +@property (nonatomic, copy) NSString *aHrefXE2X80X89JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 449 | +@property (nonatomic, copy) NSString *aHrefXE2X80X8AjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 450 | +@property (nonatomic, copy) NSString *aHrefXE2X81X9FjavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 451 | +@property (nonatomic, copy) NSString *aHrefXE3X80X80JavascriptJavascriptAlert1IDFuzzelement1TestA; | |
| 452 | +@property (nonatomic, copy) NSString *abcDivStyleXExpressionX00JavascriptAlert1DEF; | |
| 453 | +@property (nonatomic, copy) NSString *abcDivStyleXX00ExpressionJavascriptAlert1DEF; | |
| 454 | +@property (nonatomic, copy) NSString *abcDivStyleXX0CexpressionJavascriptAlert1DEF; | |
| 455 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X81ExpressionJavascriptAlert1DEF; | |
| 456 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X86ExpressionJavascriptAlert1DEF; | |
| 457 | +@property (nonatomic, copy) NSString *abcDivStyleXXE2X80X88ExpressionJavascriptAlert1DEF; | |
| 458 | +@property (nonatomic, copy) NSString *abcDivStyleXXE3X80X80ExpressionJavascriptAlert1DEF; | |
| 459 | +@property (nonatomic, copy) NSString *abcDivStyleXXEFXBBXBFexpressionJavascriptAlert1DEF; | |
| 460 | +@property (nonatomic, copy) NSString *andU007FDEL; | |
| 461 | +@property (nonatomic, copy) NSString *another; | |
| 462 | +@property (nonatomic, copy) NSString *asciiPunctuationAllOfTheseCharactersMayNeedToBeEscapedInSome; | |
| 463 | +@property (nonatomic, copy) NSString *bodyOnloadAlertXSS; | |
| 464 | +@property (nonatomic, copy) NSString *c; | |
| 465 | +@property (nonatomic, copy) NSString *c00; | |
| 466 | +@property (nonatomic, copy) NSString *c000; | |
| 467 | +@property (nonatomic, copy) NSString *c1; | |
| 468 | +@property (nonatomic, copy) NSString *c100; | |
| 469 | +@property (nonatomic, copy) NSString *c100000; | |
| 470 | +@property (nonatomic, copy) NSString *c100000000; | |
| 471 | +@property (nonatomic, copy) NSString *c1E02; | |
| 472 | +@property (nonatomic, copy) NSString *cScriptAlert123Script; | |
| 473 | +@property (nonatomic, copy) NSString *cTrue; | |
| 474 | +@property (nonatomic, copy) NSString *clock; | |
| 475 | +@property (nonatomic, copy) NSString *com2; | |
| 476 | +@property (nonatomic, copy) NSString *com4; | |
| 477 | +@property (nonatomic, copy) NSString *craigCockburnSoftwareSpecialist; | |
| 478 | +@property (nonatomic, copy) NSString *dccSendStartkeylogger000; | |
| 479 | +@property (nonatomic, copy) NSString *emoji; | |
| 480 | +@property (nonatomic, copy) NSString *empty; | |
| 481 | +@property (nonatomic, copy) NSString *evaluate; | |
| 482 | +@property (nonatomic, copy) NSString *fooValBar; | |
| 483 | +@property (nonatomic, copy) NSString *hasOwnProperty; | |
| 484 | +@property (nonatomic, copy) NSString *hornimanMuseum; | |
| 485 | +@property (nonatomic, copy) NSString *httpWWWCumQcCA; | |
| 486 | +@property (nonatomic, copy) NSString *iOnwheelAlert1ScrollOverMeI; | |
| 487 | +@property (nonatomic, copy) NSString *imgABCSrcDXEOnerrorFAlert1; | |
| 488 | +@property (nonatomic, copy) NSString *imgOnmouseoverAlertXxs; | |
| 489 | +@property (nonatomic, copy) NSString *imgSCRIPTAlertXSSSCRIPT; | |
| 490 | +@property (nonatomic, copy) NSString *imgSRCJavascriptAlertStringFromCharCode888383; | |
| 491 | +@property (nonatomic, copy) NSString *imgSRCJavascriptAlertXSS; | |
| 492 | +@property (nonatomic, copy) NSString *imgSrcOnerrorAltJavascriptAlert1; | |
| 493 | +@property (nonatomic, copy) NSString *imgSrcX10XOnerrorJavascriptAlert1; | |
| 494 | +@property (nonatomic, copy) NSString *imgSrcX12XOnerrorJavascriptAlert1; | |
| 495 | +@property (nonatomic, copy) NSString *imgSrcX13XOnerrorJavascriptAlert1; | |
| 496 | +@property (nonatomic, copy) NSString *imgSrcX32XOnerrorJavascriptAlert1; | |
| 497 | +@property (nonatomic, copy) NSString *imgSrcX47XOnerrorJavascriptAlert1; | |
| 498 | +@property (nonatomic, copy) NSString *imgSrcXOnerrorAlert123; | |
| 499 | +@property (nonatomic, copy) NSString *imgSrcXOnerrorX10JavascriptAlert1; | |
| 500 | +@property (nonatomic, copy) NSString *imgSrcXOnerrorX32JavascriptAlert1; | |
| 501 | +@property (nonatomic, copy) NSString *imgSrcXScriptJavascriptAlert1Script; | |
| 502 | +@property (nonatomic, copy) NSString *imgSrcXxxXX09OnerrorJavascriptAlert1; | |
| 503 | +@property (nonatomic, copy) NSString *imgSrcXxxXX20OnerrorJavascriptAlert1; | |
| 504 | +@property (nonatomic, copy) NSString *imgSrcXxxXX22OnerrorJavascriptAlert1; | |
| 505 | +@property (nonatomic, copy) NSString *imgSrcXxxXX27OnerrorJavascriptAlert1; | |
| 506 | +@property (nonatomic, copy) NSString *imgX11SrcXOnerrorJavascriptAlert1; | |
| 507 | +@property (nonatomic, copy) NSString *imgX34SrcXOnerrorJavascriptAlert1; | |
| 508 | +@property (nonatomic, copy) NSString *imgX47SrcXOnerrorJavascriptAlert1; | |
| 509 | +@property (nonatomic, copy) NSString *infinity; | |
| 510 | +@property (nonatomic, assign) BOOL isDontMakeAMap; | |
| 511 | +@property (nonatomic, copy) NSString *javaSCriptAlert123; | |
| 512 | +@property (nonatomic, copy) NSString *lpt1; | |
| 513 | +@property (nonatomic, copy) NSString *ltScriptGtAlert3912339LtScriptGt; | |
| 514 | +@property (nonatomic, copy) NSString *magnaCumLaude; | |
| 515 | +@property (nonatomic, copy) NSString *medievalErectionOfParapets; | |
| 516 | +@property (nonatomic, copy) NSString *mocha; | |
| 517 | +@property (nonatomic, copy) NSString *naN; | |
| 518 | +@property (nonatomic, copy) NSString *nonWhitespaceC0ControlsU0001ThroughU0008U000EThroughU001F; | |
| 519 | +@property (nonatomic, copy) NSString *null; | |
| 520 | +@property (nonatomic, copy) NSString *one; | |
| 521 | +@property (nonatomic, copy) NSString *one00; | |
| 522 | +@property (nonatomic, copy) NSString *one100000; | |
| 523 | +@property (nonatomic, copy) NSString *one100000000; | |
| 524 | +@property (nonatomic, copy) NSString *onfocusJaVaSCriptAlert123Autofocus; | |
| 525 | +@property (nonatomic, copy) NSString *orReusedForInternalDelimitersOnTheTheoryThatTheyShouldNever; | |
| 526 | +@property (nonatomic, copy) NSString *plaintext; | |
| 527 | +@property (nonatomic, copy) NSString *powerلُلُصّبُلُلصّبُررًॣॣH冗; | |
| 528 | +@property (nonatomic, copy) NSString *rightToLeftStrings; | |
| 529 | +@property (nonatomic, copy) NSString *rosesAre031Mred0MVioletsAre034MblueHopeYouEnjoyTerminalHue; | |
| 530 | +@property (nonatomic, copy) NSString *s; | |
| 531 | +@property (nonatomic, copy) NSString *scriptAlert123Script; | |
| 532 | +@property (nonatomic, copy) NSString *scriptAlert123ScriptX; | |
| 533 | +@property (nonatomic, copy) NSString *scriptJavascriptAlert1Script; | |
| 534 | +@property (nonatomic, copy) NSString *scriptScriptAlert123Script; | |
| 535 | +@property (nonatomic, copy) NSString *scriptSrcJscriptSScript; | |
| 536 | +@property (nonatomic, copy) NSString *scriptX0AjavascriptAlert1Script; | |
| 537 | +@property (nonatomic, copy) NSString *scriptX0BjavascriptAlert1Script; | |
| 538 | +@property (nonatomic, copy) NSString *scriptX0CtypeTextJavascriptJavascriptAlert1Script; | |
| 539 | +@property (nonatomic, copy) NSString *scriptX20JavascriptAlert1Script; | |
| 540 | +@property (nonatomic, copy) NSString *scriptX2BjavascriptAlert1Script; | |
| 541 | +@property (nonatomic, copy) NSString *scriptX2FtypeTextJavascriptJavascriptAlert1Script; | |
| 542 | +@property (nonatomic, copy) NSString *scriptX7EjavascriptAlert1Script; | |
| 543 | +@property (nonatomic, copy) NSString *scriptXE2X80X80JavascriptAlert1Script; | |
| 544 | +@property (nonatomic, copy) NSString *scriptXE2X80X82JavascriptAlert1Script; | |
| 545 | +@property (nonatomic, copy) NSString *scriptXE2X80X83JavascriptAlert1Script; | |
| 546 | +@property (nonatomic, copy) NSString *scriptXE2X80X84JavascriptAlert1Script; | |
| 547 | +@property (nonatomic, copy) NSString *scriptXE2X80X88JavascriptAlert1Script; | |
| 548 | +@property (nonatomic, copy) NSString *scriptXE2X80X8BjavascriptAlert1Script; | |
| 549 | +@property (nonatomic, copy) NSString *scriptXEFXBFXAEjavascriptAlert1Script; | |
| 550 | +@property (nonatomic, copy) NSString *scriptXEFXBFXBEjavascriptAlert1Script; | |
| 551 | +@property (nonatomic, copy) NSString *scunthorpeGeneralHospital; | |
| 552 | +@property (nonatomic, copy) NSString *serverCodeInjection; | |
| 553 | +@property (nonatomic, copy) NSString *shitakeMushrooms; | |
| 554 | +@property (nonatomic, copy) NSString *some; | |
| 555 | +@property (nonatomic, copy) NSString *some00; | |
| 556 | +@property (nonatomic, copy) NSString *specialCharacters; | |
| 557 | +@property (nonatomic, copy) NSString *srcJaVaSCriptPrompt132; | |
| 558 | +@property (nonatomic, copy) NSString *stringsWhichCanBeInterpretedAsNumeric; | |
| 559 | +@property (nonatomic, copy) NSString *stringsWhichCanCauseASQLInjectionIfInputsAreNotSanitized; | |
| 560 | +@property (nonatomic, copy) NSString *stringsWhichCanCauseUserToPullInFilesThatShouldNotBeAPartOfAWebServer; | |
| 561 | +@property (nonatomic, copy) NSString *stringsWhichCanCauseUserToRunCodeOnServerAsAPrivilegedUserCFHTTPSNewsYcombinatorCOMItemID7665153; | |
| 562 | +@property (nonatomic, copy) NSString *stringsWhichContainCorruptedTextTheCorruptionWillNotAppearInNonHTMLTextHoweverViaHTTPWWWEeemoNet; | |
| 563 | +@property (nonatomic, copy) NSString *stringsWhichContainUnicodeWithAnUpsidedownEffectViaHTTPWWWUpsidedowntextCOM; | |
| 564 | +@property (nonatomic, copy) NSString *stringsWhichContainUnicodeWithUnusualPropertiesEGRightToLeftOverrideCFHTTPWWWUnicodeOrgChartsPDFU2000PDF; | |
| 565 | +@property (nonatomic, copy) NSString *stringsWhichPunishTheFoolsWhoUseCatTypeOnThisFile; | |
| 566 | +@property (nonatomic, copy) NSString *svgScript1231Alert123Script; | |
| 567 | +@property (nonatomic, copy) NSString *systemLsAl; | |
| 568 | +@property (nonatomic, copy) NSString *systemTouchTmpBlnsFail; | |
| 569 | +@property (nonatomic, copy) NSString *test; | |
| 570 | +@property (nonatomic, copy) NSString *testTest; | |
| 571 | +@property (nonatomic, copy) NSString *the; | |
| 572 | +@property (nonatomic, copy) NSString *the00; | |
| 573 | +@property (nonatomic, copy) NSString *the000; | |
| 574 | +@property (nonatomic, copy) NSString *the0TouchTmpBlnsShellshock1Fail; | |
| 575 | +@property (nonatomic, copy) NSString *the0Xabad1Dea; | |
| 576 | +@property (nonatomic, copy) NSString *the0Xffffffff; | |
| 577 | +@property (nonatomic, copy) NSString *the0️; | |
| 578 | +@property (nonatomic, copy) NSString *the0️1️2️3️4️5️6️7️8️9️; | |
| 579 | +@property (nonatomic, copy) NSString *the1; | |
| 580 | +@property (nonatomic, copy) NSString *the10; | |
| 581 | +@property (nonatomic, copy) NSString *the100; | |
| 582 | +@property (nonatomic, copy) NSString *the100000; | |
| 583 | +@property (nonatomic, copy) NSString *the100000000; | |
| 584 | +@property (nonatomic, copy) NSString *the11; | |
| 585 | +@property (nonatomic, copy) NSString *the12; | |
| 586 | +@property (nonatomic, copy) NSString *the13; | |
| 587 | +@property (nonatomic, copy) NSString *the1E02; | |
| 588 | +@property (nonatomic, copy) NSString *the1E2; | |
| 589 | +@property (nonatomic, copy) NSString *the1Ind; | |
| 590 | +@property (nonatomic, copy) NSString *the2; | |
| 591 | +@property (nonatomic, copy) NSString *the3; | |
| 592 | +@property (nonatomic, copy) NSString *the4; | |
| 593 | +@property (nonatomic, copy) NSString *the5; | |
| 594 | +@property (nonatomic, copy) NSString *the6; | |
| 595 | +@property (nonatomic, copy) NSString *the7; | |
| 596 | +@property (nonatomic, copy) NSString *the8; | |
| 597 | +@property (nonatomic, copy) NSString *the9; | |
| 598 | +@property (nonatomic, copy) NSString *the92233720368547758081; | |
| 599 | +@property (nonatomic, copy) NSString *theScriptAlert123Script; | |
| 600 | +@property (nonatomic, copy) NSString *the١٢٣; | |
| 601 | +@property (nonatomic, copy) NSString *titleOnpropertychangeJavascriptAlert1TitleTitleTitle; | |
| 602 | +@property (nonatomic, copy) NSString *treatedAsWhitespaceInSomeContexts; | |
| 603 | +@property (nonatomic, copy) NSString *trickUnicode; | |
| 604 | +@property (nonatomic, copy) NSString *undefined; | |
| 605 | +@property (nonatomic, copy) NSString *unicodeAdditionalControlCharactersAllOfTheCharactersWith; | |
| 606 | +@property (nonatomic, copy) NSString *unicodeSubscriptSuperscriptAccents; | |
| 607 | +@property (nonatomic, copy) NSString *unicodeUpsidedown; | |
| 608 | +@property (nonatomic, copy) NSString *user; | |
| 609 | +@property (nonatomic, copy) NSString *version; | |
| 610 | +@property (nonatomic, copy) NSString *version800PlusU0009HTU000BVTU000CFFU0085NEL; | |
| 611 | +@property (nonatomic, copy) NSString *whitespaceAllOfTheCharactersWithCategoryZsZlOrZpInUnicode; | |
| 612 | +@property (nonatomic, copy) NSString *xmlVersion10EncodingISO88591DOCTYPEFooELEMENTFooANYENTITYXxeSYSTEMFileEtcPasswdFooXxeFoo; | |
| 613 | +@property (nonatomic, copy) NSString *xxeInjectionXML; | |
| 614 | +@property (nonatomic, copy) NSString *zalgoText; | |
| 615 | +@property (nonatomic, copy) NSString *zz; | |
| 616 | +@property (nonatomic, copy) NSString *åíîïÓôÒúæ; | |
| 617 | +@property (nonatomic, copy) NSString *ω; | |
| 618 | +@property (nonatomic, copy) NSString *ёђѓєѕіїјљњћќѝўџабвгдежзийклмнопрстуфхцчшщъыьэюЯабвгдежзийклмнопрстуфхцчшщъыьэюя; | |
| 619 | +@property (nonatomic, copy) NSString *בְּרֵאשִׁיתבָּרָאאֱלֹהִיםאֵתהַשָּׁמַיִםוְאֵתהָאָרֶץ; | |
| 620 | +@property (nonatomic, copy) NSString *مُنَاقَشَةُسُبُلِاِسْتِخْدَامِاللُّغَةِفِيالنُّظُمِالْقَائِمَةِوَفِيميَخُصَّالتَّطْبِيقَاتُالْحاسُوبِيَّةُ; | |
| 621 | +@property (nonatomic, copy) NSString *ṯHENEZPERDIANHIVḘMINḌǪFCḤAƠSZALGO; | |
| 622 | +@property (nonatomic, copy) NSString *ノº_ºノ; | |
| 623 | +@property (nonatomic, copy) NSString *울란바토르; | |
| 624 | +@property (nonatomic, copy) NSString *theQuickBrownFoxJumpsOverTheLazyDog; | |
| 625 | +@property (nonatomic, copy) NSString *ノಥ益ಥノ; | |
| 626 | +@end | |
| 627 | + | |
| 628 | +NS_ASSUME_NONNULL_END |
Aobjective-c-compiledefault / QTTopLevel.m+1,473 −0
| @@ -0,0 +1,1473 @@ | ||
| 1 | +#import "QTTopLevel.h" | |
| 2 | + | |
| 3 | +#define λ(decl, expr) (^(decl) { return (expr); }) | |
| 4 | + | |
| 5 | +static id NSNullify(id _Nullable x) { | |
| 6 | + return (x == nil || x == NSNull.null) ? NSNull.null : x; | |
| 7 | +} | |
| 8 | + | |
| 9 | +NS_ASSUME_NONNULL_BEGIN | |
| 10 | + | |
| 11 | +@interface QTTopLevel (JSONConversion) | |
| 12 | ++ (instancetype)fromJSONDictionary:(NSDictionary *)dict; | |
| 13 | +- (NSDictionary *)JSONDictionary; | |
| 14 | +@end | |
| 15 | + | |
| 16 | +@interface QTA (JSONConversion) | |
| 17 | ++ (instancetype)fromJSONDictionary:(NSDictionary *)dict; | |
| 18 | +- (NSDictionary *)JSONDictionary; | |
| 19 | +@end | |
| 20 | + | |
| 21 | +@interface QTB (JSONConversion) | |
| 22 | ++ (instancetype)fromJSONDictionary:(NSDictionary *)dict; | |
| 23 | +- (NSDictionary *)JSONDictionary; | |
| 24 | +@end | |
| 25 | + | |
| 26 | +@interface QTC (JSONConversion) | |
| 27 | ++ (instancetype)fromJSONDictionary:(NSDictionary *)dict; | |
| 28 | +- (NSDictionary *)JSONDictionary; | |
| 29 | +@end | |
| 30 | + | |
| 31 | +#pragma mark - JSON serialization | |
| 32 | + | |
| 33 | +QTTopLevel *_Nullable QTTopLevelFromData(NSData *data, NSError **error) | |
| 34 | +{ | |
| 35 | + @try { | |
| 36 | + id json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:error]; | |
| 37 | + return *error ? nil : [QTTopLevel fromJSONDictionary:json]; | |
| 38 | + } @catch (NSException *exception) { | |
| 39 | + *error = [NSError errorWithDomain:@"JSONSerialization" code:-1 userInfo:@{ @"exception": exception }]; | |
| 40 | + return nil; | |
| 41 | + } | |
| 42 | +} | |
| 43 | + | |
| 44 | +QTTopLevel *_Nullable QTTopLevelFromJSON(NSString *json, NSStringEncoding encoding, NSError **error) | |
| 45 | +{ | |
| 46 | + return QTTopLevelFromData([json dataUsingEncoding:encoding], error); | |
| 47 | +} | |
| 48 | + | |
| 49 | +NSData *_Nullable QTTopLevelToData(QTTopLevel *topLevel, NSError **error) | |
| 50 | +{ | |
| 51 | + @try { | |
| 52 | + id json = [topLevel JSONDictionary]; | |
| 53 | + NSData *data = [NSJSONSerialization dataWithJSONObject:json options:NSJSONWritingFragmentsAllowed error:error]; | |
| 54 | + return *error ? nil : data; | |
| 55 | + } @catch (NSException *exception) { | |
| 56 | + *error = [NSError errorWithDomain:@"JSONSerialization" code:-1 userInfo:@{ @"exception": exception }]; | |
| 57 | + return nil; | |
| 58 | + } | |
| 59 | +} | |
| 60 | + | |
| 61 | +NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding encoding, NSError **error) | |
| 62 | +{ | |
| 63 | + NSData *data = QTTopLevelToData(topLevel, error); | |
| 64 | + return data ? [[NSString alloc] initWithData:data encoding:encoding] : nil; | |
| 65 | +} | |
| 66 | + | |
| 67 | +@implementation QTTopLevel | |
| 68 | ++ (NSDictionary<NSString *, NSString *> *)properties | |
| 69 | +{ | |
| 70 | + static NSDictionary<NSString *, NSString *> *properties; | |
| 71 | + return properties = properties ? properties : @{ | |
| 72 | + @"a": @"a", | |
| 73 | + @"b": @"b", | |
| 74 | + @"c": @"c", | |
| 75 | + }; | |
| 76 | +} | |
| 77 | + | |
| 78 | ++ (_Nullable instancetype)fromData:(NSData *)data error:(NSError *_Nullable *)error | |
| 79 | +{ | |
| 80 | + return QTTopLevelFromData(data, error); | |
| 81 | +} | |
| 82 | + | |
| 83 | ++ (_Nullable instancetype)fromJSON:(NSString *)json encoding:(NSStringEncoding)encoding error:(NSError *_Nullable *)error | |
| 84 | +{ | |
| 85 | + return QTTopLevelFromJSON(json, encoding, error); | |
| 86 | +} | |
| 87 | + | |
| 88 | ++ (instancetype)fromJSONDictionary:(NSDictionary *)dict | |
| 89 | +{ | |
| 90 | + return [dict isKindOfClass:NSDictionary.class] ? [[QTTopLevel alloc] initWithJSONDictionary:dict] : nil; | |
| 91 | +} | |
| 92 | + | |
| 93 | +- (instancetype)initWithJSONDictionary:(NSDictionary *)dict | |
| 94 | +{ | |
| 95 | + if (self = [super init]) { | |
| 96 | + if (![dict[@"a"] isKindOfClass:NSDictionary.class]) return nil; | |
| 97 | + if (![dict[@"b"] isKindOfClass:NSDictionary.class]) return nil; | |
| 98 | + if (![dict[@"c"] isKindOfClass:NSDictionary.class]) return nil; | |
| 99 | + [self setValuesForKeysWithDictionary:dict]; | |
| 100 | + _a = [QTA fromJSONDictionary:(id)_a]; | |
| 101 | + if (!_a && dict[@"a"] && ![dict[@"a"] isKindOfClass:NSNull.class]) return nil; | |
| 102 | + _b = [QTB fromJSONDictionary:(id)_b]; | |
| 103 | + if (!_b && dict[@"b"] && ![dict[@"b"] isKindOfClass:NSNull.class]) return nil; | |
| 104 | + _c = [QTC fromJSONDictionary:(id)_c]; | |
| 105 | + if (!_c && dict[@"c"] && ![dict[@"c"] isKindOfClass:NSNull.class]) return nil; | |
| 106 | + } | |
| 107 | + return self; | |
| 108 | +} | |
| 109 | + | |
| 110 | +- (void)setValue:(nullable id)value forKey:(NSString *)key | |
| 111 | +{ | |
| 112 | + id resolved = QTTopLevel.properties[key]; | |
| 113 | + if (resolved) [super setValue:value forKey:resolved]; | |
| 114 | +} | |
| 115 | + | |
| 116 | +- (void)setNilValueForKey:(NSString *)key | |
| 117 | +{ | |
| 118 | + id resolved = QTTopLevel.properties[key]; | |
| 119 | + if (resolved) [super setValue:@(0) forKey:resolved]; | |
| 120 | +} | |
| 121 | + | |
| 122 | +- (NSDictionary *)JSONDictionary | |
| 123 | +{ | |
| 124 | + id dict = [[self dictionaryWithValuesForKeys:QTTopLevel.properties.allValues] mutableCopy]; | |
| 125 | + | |
| 126 | + [dict addEntriesFromDictionary:@{ | |
| 127 | + @"a": [_a JSONDictionary], | |
| 128 | + @"b": [_b JSONDictionary], | |
| 129 | + @"c": [_c JSONDictionary], | |
| 130 | + }]; | |
| 131 | + | |
| 132 | + return dict; | |
| 133 | +} | |
| 134 | + | |
| 135 | +- (NSData *_Nullable)toData:(NSError *_Nullable *)error | |
| 136 | +{ | |
| 137 | + return QTTopLevelToData(self, error); | |
| 138 | +} | |
| 139 | + | |
| 140 | +- (NSString *_Nullable)toJSON:(NSStringEncoding)encoding error:(NSError *_Nullable *)error | |
| 141 | +{ | |
| 142 | + return QTTopLevelToJSON(self, encoding, error); | |
| 143 | +} | |
| 144 | +@end | |
| 145 | + | |
| 146 | +@implementation QTA | |
| 147 | ++ (NSDictionary<NSString *, NSString *> *)properties | |
| 148 | +{ | |
| 149 | + static NSDictionary<NSString *, NSString *> *properties; | |
| 150 | + return properties = properties ? properties : @{ | |
| 151 | + @"!@#$%^&*()`~": @"a", | |
| 152 | + @"-0": @"a0", | |
| 153 | + @"0,00": @"a000", | |
| 154 | + @"0.0/0.0": @"a0000", | |
| 155 | + @"-1": @"a1", | |
| 156 | + @"1'000'000.00": @"a100000000", | |
| 157 | + @"1E02": @"a1E02", | |
| 158 | + @"';alert(123);t='": @"aAlert123T", | |
| 159 | + @"False": @"aFalse", | |
| 160 | + @"<a href=javascript:javascript:alert(1)>XXX</a>": @"aHrefJava123456781112ScriptJavascriptAlert1XXXA", | |
| 161 | + @"<a href=\"javascript\\x09:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefJavascriptX09JavascriptAlert1IDFuzzelement1TestA", | |
| 162 | + @"<a href=\"javascript\\x0A:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefJavascriptX0AJavascriptAlert1IDFuzzelement1TestA", | |
| 163 | + @"<a href=\"javascript\\x3A:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefJavascriptX3AJavascriptAlert1IDFuzzelement1TestA", | |
| 164 | + @"<a href=\"\\x01javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX01JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 165 | + @"<a href=\"\\x05javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX05JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 166 | + @"<a href=\"\\x08javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX08JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 167 | + @"<a href=\"\\x09javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX09JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 168 | + @"<a href=\"\\x0Cjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX0CjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 169 | + @"<a href=\"\\x10javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX10JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 170 | + @"<a href=\"\\x11javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX11JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 171 | + @"<a href=\"\\x13javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX13JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 172 | + @"<a href=\"\\x17javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX17JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 173 | + @"<a href=\"\\x1Fjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX1FjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 174 | + @"<a href=\"\\xC2\\xA0javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXC2XA0JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 175 | + @"<a href=\"\\xE1\\x9A\\x80javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE1X9AX80JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 176 | + @"<a href=\"\\xE1\\xA0\\x8Ejavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE1XA0X8EjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 177 | + @"<a href=\"\\xE2\\x80\\x83javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X83JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 178 | + @"<a href=\"\\xE2\\x80\\x84javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X84JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 179 | + @"<a href=\"\\xE2\\x80\\x86javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X86JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 180 | + @"<a href=\"\\xE2\\x80\\x87javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X87JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 181 | + @"<a href=\"\\xE2\\x80\\xA8javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80XA8JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 182 | + @"nil": @"aNil", | |
| 183 | + @"TRUE": @"aTRUE", | |
| 184 | + @"\u202btest\u202b": @"aTest", | |
| 185 | + @"True": @"aTrue", | |
| 186 | + @"ABC<div style=\"x:exp\\x00ression(javascript:alert(1)\">DEF": @"abcDivStyleXExpX00RessionJavascriptAlert1DEF", | |
| 187 | + @"ABC<div style=\"x:exp\\x5Cression(javascript:alert(1)\">DEF": @"abcDivStyleXExpX5CressionJavascriptAlert1DEF", | |
| 188 | + @"ABC<div style=\"x:\\x09expression(javascript:alert(1)\">DEF": @"abcDivStyleXX09ExpressionJavascriptAlert1DEF", | |
| 189 | + @"ABC<div style=\"x:\\x0Bexpression(javascript:alert(1)\">DEF": @"abcDivStyleXX0BexpressionJavascriptAlert1DEF", | |
| 190 | + @"ABC<div style=\"x:\\x20expression(javascript:alert(1)\">DEF": @"abcDivStyleXX20ExpressionJavascriptAlert1DEF", | |
| 191 | + @"ABC<div style=\"x\\x3Aexpression(javascript:alert(1)\">DEF": @"abcDivStyleXX3AexpressionJavascriptAlert1DEF", | |
| 192 | + @"ABC<div style=\"x:\\xC2\\xA0expression(javascript:alert(1)\">DEF": @"abcDivStyleXXC2XA0ExpressionJavascriptAlert1DEF", | |
| 193 | + @"ABC<div style=\"x:\\xE2\\x80\\x80expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X80ExpressionJavascriptAlert1DEF", | |
| 194 | + @"ABC<div style=\"x:\\xE2\\x80\\x84expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X84ExpressionJavascriptAlert1DEF", | |
| 195 | + @"ABC<div style=\"x:\\xE2\\x80\\x89expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X89ExpressionJavascriptAlert1DEF", | |
| 196 | + @"ABC<div style=\"x:\\xE2\\x80\\x8Bexpression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X8BexpressionJavascriptAlert1DEF", | |
| 197 | + @";alert(123);": @"alert123", | |
| 198 | + @"\";alert(123);t=\"": @"alert123T", | |
| 199 | + @"\\\";alert('XSS');//": @"alertXSS", | |
| 200 | + @"# and U+200B (ZERO WIDTH SPACE), which are in the C categories but are often": @"andU200BZEROWIDTHSPACEWhichAreInTheCCategoriesButAreOften", | |
| 201 | + @",": @"another", | |
| 202 | + @"Arsenal canal": @"arsenalCanal", | |
| 203 | + @"\" autofocus onkeyup=\"javascript:alert(123)": @"autofocusOnkeyupJavascriptAlert123", | |
| 204 | + @"AUX": @"aux", | |
| 205 | + @"#\tChanging length when lowercased": @"changingLengthWhenLowercased", | |
| 206 | + @"#\tCharacters which increase in length (2 to 3 bytes) when lowercased": @"charactersWhichIncreaseInLength2To3BytesWhenLowercased", | |
| 207 | + @"classic": @"classic", | |
| 208 | + @"#\tCommand Injection (Ruby)": @"commandInjectionRuby", | |
| 209 | + @"%d": @"d", | |
| 210 | + @"Dick Van Dyke": @"dickVanDyke", | |
| 211 | + @"Dr. Herman I. Libshitz": @"drHermanILibshitz", | |
| 212 | + @" ": @"empty", | |
| 213 | + @"$ENV{'HOME'}": @"envHome", | |
| 214 | + @"../../../../../../../../../../../etc/hosts": @"etcHosts", | |
| 215 | + @"../../../../../../../../../../../etc/passwd%00": @"etcPasswd00", | |
| 216 | + @"# fonts, and have a number of special behaviors": @"fontsAndHaveANumberOfSpecialBehaviors", | |
| 217 | + @"<foo val=`bar' />": @"fooValBar", | |
| 218 | + @"$HOME": @"home", | |
| 219 | + @"#\tHuman injection": @"humanInjection", | |
| 220 | + @"̡͓̞ͅI̗̘̦͝n͇͇͙v̮̫ok̲̫̙͈i̖͙̭̹̠̞n̡̻̮̣̺g̲͈͙̭͙̬͎ ̰t͔̦h̞̲e̢̤ ͍̬̲͖f̴̘͕̣è͖ẹ̥̩l͖͔͚i͓͚̦͠n͖͍̗͓̳̮g͍ ̨o͚̪͡f̘̣̬ ̖̘͖̟͙̮c҉͔̫͖͓͇͖ͅh̵̤̣͚͔á̗̼͕ͅo̼̣̥s̱͈̺̖̦̻͢.̛̖̞̠̫̰": @"iNVOkINGTHEFÈẸLINGOFCHÁOS", | |
| 221 | + @"<!--[if<img src=x onerror=javascript:alert(1)//]> -->": @"ifImgSrcXOnerrorJavascriptAlert1", | |
| 222 | + @"<!--[if]><script>javascript:alert(1)</script -->": @"ifScriptJavascriptAlert1Script", | |
| 223 | + @"<IMG SRC=\"jav ascript:alert('XSS');\">": @"imgSRCJavAscriptAlertXSS", | |
| 224 | + @"<IMG SRC=\"jav
ascript:alert('XSS');\">": @"imgSRCJavX0AAscriptAlertXSS", | |
| 225 | + @"<IMG SRC=\"jav
ascript:alert('XSS');\">": @"imgSRCJavX0DAscriptAlertXSS", | |
| 226 | + @"<IMG SRC=javascript:alert('XSS')>": @"imgSrc106971189711599114105112116589710810111411640398883833941", | |
| 227 | + @"<img src\\x09=x onerror=\"javascript:alert(1)\">": @"imgSrcX09XOnerrorJavascriptAlert1", | |
| 228 | + @"<img src\\x11=x onerror=\"javascript:alert(1)\">": @"imgSrcX11XOnerrorJavascriptAlert1", | |
| 229 | + @"<img src=x onerror=\\x00\"javascript:alert(1)\">": @"imgSrcXOnerrorX00JavascriptAlert1", | |
| 230 | + @"<img src=x onerror=\\x09\"javascript:alert(1)\">": @"imgSrcXOnerrorX09JavascriptAlert1", | |
| 231 | + @"<img src=x\\x09onerror=\"javascript:alert(1)\">": @"imgSrcXX09OnerrorJavascriptAlert1", | |
| 232 | + @"<img src=x\\x10onerror=\"javascript:alert(1)\">": @"imgSrcXX10OnerrorJavascriptAlert1", | |
| 233 | + @"<img src=x\\x11onerror=\"javascript:alert(1)\">": @"imgSrcXX11OnerrorJavascriptAlert1", | |
| 234 | + @"<img src=x\\x12onerror=\"javascript:alert(1)\">": @"imgSrcXX12OnerrorJavascriptAlert1", | |
| 235 | + @"<img src=x\\x13onerror=\"javascript:alert(1)\">": @"imgSrcXX13OnerrorJavascriptAlert1", | |
| 236 | + @"`\"'><img src=xxx:x \\x00onerror=javascript:alert(1)>": @"imgSrcXxxXX00OnerrorJavascriptAlert1", | |
| 237 | + @"`\"'><img src=xxx:x \\x0Bonerror=javascript:alert(1)>": @"imgSrcXxxXX0BonerrorJavascriptAlert1", | |
| 238 | + @"`\"'><img src=xxx:x \\x2Fonerror=javascript:alert(1)>": @"imgSrcXxxXX2FonerrorJavascriptAlert1", | |
| 239 | + @"<img \\x00src=x onerror=\"alert(1)\">": @"imgX00SrcXOnerrorAlert1", | |
| 240 | + @"<img\\x10src=x onerror=\"javascript:alert(1)\">": @"imgX10SrcXOnerrorJavascriptAlert1", | |
| 241 | + @"<img\\x13src=x onerror=\"javascript:alert(1)\">": @"imgX13SrcXOnerrorJavascriptAlert1", | |
| 242 | + @"<img\\x32src=x onerror=\"javascript:alert(1)\">": @"imgX32SrcXOnerrorJavascriptAlert1", | |
| 243 | + @"<img \\x39src=x onerror=\"javascript:alert(1)\">": @"imgX39SrcXOnerrorJavascriptAlert1", | |
| 244 | + @"INF": @"inf", | |
| 245 | + @"-Infinity": @"infinity", | |
| 246 | + @"#\tInnocuous strings which may be blocked by profanity filters (https://en.wikipedia.org/wiki/Scunthorpe_problem)": @"innocuousStringsWhichMayBeBlockedByProfanityFiltersHTTPSEnWikipediaOrgWikiScunthorpeProblem", | |
| 247 | + @"dontMakeAMap": @"isDontMakeAMap", | |
| 248 | + @"Jimmy Clitheroe": @"jimmyClitheroe", | |
| 249 | + @"Kernel.exit(1)": @"kernelExit1", | |
| 250 | + @"#\tKnown CVEs and Vulnerabilities": @"knownCVEsAndVulnerabilities", | |
| 251 | + @"Lightwater Country Park": @"lightwaterCountryPark", | |
| 252 | + @"LPT2": @"lpt2", | |
| 253 | + @"LPT3": @"lpt3", | |
| 254 | + @"`ls -al /`": @"lsAl", | |
| 255 | + @"#\tMSDOS/Windows Special Filenames": @"msdosWindowsSpecialFilenames", | |
| 256 | + @"# Non-whitespace C1 controls: U+0080 through U+0084 and U+0086 through U+009F.": @"nonWhitespaceC1ControlsU0080ThroughU0084AndU0086ThroughU009F", | |
| 257 | + @"None": @"none", | |
| 258 | + @"(null)": @"null", | |
| 259 | + @"'\"'": @"one", | |
| 260 | + @"0": @"one0", | |
| 261 | + @"1": @"one1", | |
| 262 | + @" onfocus=JaVaSCript:alert(123) autofocus": @"onfocusJaVaSCriptAlert123Autofocus", | |
| 263 | + @"' OR '1'='1": @"or11", | |
| 264 | + @"Penistone Community Church": @"penistoneCommunityChurch", | |
| 265 | + @"perl -e 'print \"<IMG SRC=java\\0script:alert(\\\"XSS\\\")>\";' > out": @"perlEPrintIMGSRCJava0ScriptAlertXSSOut", | |
| 266 | + @"PRN": @"prn", | |
| 267 | + @"RomansInSussex.co.uk": @"romansInSussexCoUk", | |
| 268 | + @"%s": @"s", | |
| 269 | + @"<<< %s(un='%s') = %u": @"sUnSU", | |
| 270 | + @"<sc<script>ript>alert(123)</sc</script>ript>": @"scScriptRiptAlert123ScScriptRipt", | |
| 271 | + @"\"><script>alert(123);</script x=\"": @"scriptAlert123ScriptX", | |
| 272 | + @"#\tScript Injection": @"scriptInjection", | |
| 273 | + @"<SCRIPT SRC=http://ha.ckers.org/xss.js?< B >": @"scriptSRCHTTPHaCkersOrgXSSJSB", | |
| 274 | + @"<SCRIPT/SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT>": @"scriptSRCHTTPHaCkersOrgXSSJSSCRIPT", | |
| 275 | + @"</script><script>alert(123)</script>": @"scriptScriptAlert123Script", | |
| 276 | + @"\"`'><script>\\x00javascript:alert(1)</script>": @"scriptX00JavascriptAlert1Script", | |
| 277 | + @"<script\\x09type=\"text/javascript\">javascript:alert(1);</script>": @"scriptX09TypeTextJavascriptJavascriptAlert1Script", | |
| 278 | + @"\"`'><script>\\x0Cjavascript:alert(1)</script>": @"scriptX0CjavascriptAlert1Script", | |
| 279 | + @"\"`'><script>\\x0Djavascript:alert(1)</script>": @"scriptX0DjavascriptAlert1Script", | |
| 280 | + @"<script\\x20type=\"text/javascript\">javascript:alert(1);</script>": @"scriptX20TypeTextJavascriptJavascriptAlert1Script", | |
| 281 | + @"<script\\x3Etype=\"text/javascript\">javascript:alert(1);</script>": @"scriptX3EtypeTextJavascriptJavascriptAlert1Script", | |
| 282 | + @"\"`'><script>\\xC2\\x85javascript:alert(1)</script>": @"scriptXC2X85JavascriptAlert1Script", | |
| 283 | + @"\"`'><script>\\xC2\\xA0javascript:alert(1)</script>": @"scriptXC2XA0JavascriptAlert1Script", | |
| 284 | + @"\"`'><script>\\xE1\\x9A\\x80javascript:alert(1)</script>": @"scriptXE1X9AX80JavascriptAlert1Script", | |
| 285 | + @"\"`'><script>\\xE1\\xA0\\x8Ejavascript:alert(1)</script>": @"scriptXE1XA0X8EjavascriptAlert1Script", | |
| 286 | + @"\"`'><script>\\xE2\\x80\\x81javascript:alert(1)</script>": @"scriptXE2X80X81JavascriptAlert1Script", | |
| 287 | + @"\"`'><script>\\xE2\\x80\\x86javascript:alert(1)</script>": @"scriptXE2X80X86JavascriptAlert1Script", | |
| 288 | + @"\"`'><script>\\xE2\\x80\\x89javascript:alert(1)</script>": @"scriptXE2X80X89JavascriptAlert1Script", | |
| 289 | + @"\"`'><script>\\xE2\\x81\\x9Fjavascript:alert(1)</script>": @"scriptXE2X81X9FjavascriptAlert1Script", | |
| 290 | + @"\"`'><script>\\xEF\\xBB\\xBFjavascript:alert(1)</script>": @"scriptXEFXBBXBFjavascriptAlert1Script", | |
| 291 | + @"\"`'><script>\\xF0\\x90\\x96\\x9Ajavascript:alert(1)</script>": @"scriptXF0X90X96X9AjavascriptAlert1Script", | |
| 292 | + @"<SCRIPT/XSS SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT>": @"scriptXSSSRCHTTPHaCkersOrgXSSJSSCRIPT", | |
| 293 | + @"(╯°□°)╯︵ ┻━┻)": @"some", | |
| 294 | + @"{0}": @"some0", | |
| 295 | + @"#\tSQL Injection": @"sqlInjection", | |
| 296 | + @"#\tString which can reveal system files when parsed by a badly configured XML parser": @"stringWhichCanRevealSystemFilesWhenParsedByABadlyConfiguredXMLParser", | |
| 297 | + @"#\tStrings that test for known vulnerabilities": @"stringsThatTestForKnownVulnerabilities", | |
| 298 | + @"#\tStrings which can be accidentally expanded into different strings if evaluated in the wrong context, e.g. used as a printf format string or via Perl or shell eval. Might expose sensitive data from the program doing the interpolation, or might just represent the wrong string.": @"stringsWhichCanBeAccidentallyExpandedIntoDifferentStringsIfEvaluatedInTheWrongContextEGUsedAsAPrintfFormatStringOrViaPERLOrShellEvalMightExposeSensitiveDataFromTheProgramDoingTheInterpolationOrMightJustRepresentTheWrongString", | |
| 299 | + @"#\tStrings which can call system commands within Ruby/Rails applications": @"stringsWhichCanCallSystemCommandsWithinRubyRailsApplications", | |
| 300 | + @"#\tStrings which consists of Japanese-style emoticons which are popular on the web": @"stringsWhichConsistsOfJapaneseStyleEmoticonsWhichArePopularOnTheWeb", | |
| 301 | + @"#\tStrings which contain bold/italic/etc. versions of normal characters": @"stringsWhichContainBoldItalicEtcVersionsOfNormalCharacters", | |
| 302 | + @"#\tStrings which contain common unicode symbols (e.g. smart quotes)": @"stringsWhichContainCommonUnicodeSymbolsEGSmartQuotes", | |
| 303 | + @"#\tStrings which contain Emoji; should be the same behavior as two-byte characters, but not always": @"stringsWhichContainEmojiShouldBeTheSameBehaviorAsTwoByteCharactersButNotAlways", | |
| 304 | + @"#\tStrings which contain misplaced quotation marks; can cause encoding errors": @"stringsWhichContainMisplacedQuotationMarksCanCauseEncodingErrors", | |
| 305 | + @"#\tStrings which contain unicode subscripts/superscripts; can cause rendering issues": @"stringsWhichContainUnicodeSubscriptsSuperscriptsCanCauseRenderingIssues", | |
| 306 | + @"#\tStrings which crashed iMessage in various versions of iOS": @"stringsWhichCrashedIMessageInVariousVersionsOfIOS", | |
| 307 | + @"#\tStrings which may cause human to reinterpret worldview": @"stringsWhichMayCauseHumanToReinterpretWorldview", | |
| 308 | + @"Super Bowl XXX": @"superBowlXXX", | |
| 309 | + @"\u202a\u202atest\u202a": @"test", | |
| 310 | + @"</textarea><script>alert(123)</script>": @"textareaScriptAlert123Script", | |
| 311 | + @"'": @"the", | |
| 312 | + @"+0": @"the0", | |
| 313 | + @"0..0": @"the00", | |
| 314 | + @"0,0,0": @"the000", | |
| 315 | + @"0,0/0,0": @"the0000", | |
| 316 | + @"00˙Ɩ$-": @"the00Ɩ", | |
| 317 | + @"0x0": @"the0X0", | |
| 318 | + @",./;'[]\\-=": @"the1", | |
| 319 | + @"1/0": @"the10", | |
| 320 | + @"1.00": @"the100", | |
| 321 | + @"1.0/0.0": @"the1000", | |
| 322 | + @"1'000,00": @"the100000", | |
| 323 | + @"1 000 000.00": @"the100000000", | |
| 324 | + @"\U0001d47b\U0001d489\U0001d486 \U0001d492\U0001d496\U0001d48a\U0001d484\U0001d48c \U0001d483\U0001d493\U0001d490\U0001d498\U0001d48f \U0001d487\U0001d490\U0001d499 \U0001d48b\U0001d496\U0001d48e\U0001d491\U0001d494 \U0001d490\U0001d497\U0001d486\U0001d493 \U0001d495\U0001d489\U0001d486 \U0001d48d\U0001d482\U0001d49b\U0001d49a \U0001d485\U0001d490\U0001d488": @"the11", | |
| 325 | + @"1/2": @"the12", | |
| 326 | + @"123456789012345678901234567890123456789": @"the123456789012345678901234567890123456789", | |
| 327 | + @"\U0001d4e3\U0001d4f1\U0001d4ee \U0001d4fa\U0001d4fe\U0001d4f2\U0001d4ec\U0001d4f4 \U0001d4eb\U0001d4fb\U0001d4f8\U0001d500\U0001d4f7 \U0001d4ef\U0001d4f8\U0001d501 \U0001d4f3\U0001d4fe\U0001d4f6\U0001d4f9\U0001d4fc \U0001d4f8\U0001d4ff\U0001d4ee\U0001d4fb \U0001d4fd\U0001d4f1\U0001d4ee \U0001d4f5\U0001d4ea\U0001d503\U0001d502 \U0001d4ed\U0001d4f8\U0001d4f0": @"the13", | |
| 328 | + @"\U0001d57f\U0001d58d\U0001d58a \U0001d596\U0001d59a\U0001d58e\U0001d588\U0001d590 \U0001d587\U0001d597\U0001d594\U0001d59c\U0001d593 \U0001d58b\U0001d594\U0001d59d \U0001d58f\U0001d59a\U0001d592\U0001d595\U0001d598 \U0001d594\U0001d59b\U0001d58a\U0001d597 \U0001d599\U0001d58d\U0001d58a \U0001d591\U0001d586\U0001d59f\U0001d59e \U0001d589\U0001d594\U0001d58c": @"the14", | |
| 329 | + @"\U0001f1fa\U0001f1f8\U0001f1f7\U0001f1fa\U0001f1f8 \U0001f1e6\U0001f1eb\U0001f1e6\U0001f1f2\U0001f1f8": @"the15", | |
| 330 | + @"\U0001f1fa\U0001f1f8\U0001f1f7\U0001f1fa\U0001f1f8\U0001f1e6": @"the16", | |
| 331 | + @"\U0001f1fa\U0001f1f8\U0001f1f7\U0001f1fa\U0001f1f8\U0001f1e6\U0001f1eb\U0001f1e6\U0001f1f2": @"the17", | |
| 332 | + @"\U0001f469\U0001f3fd": @"the18", | |
| 333 | + @"\U0001f6be \U0001f192 \U0001f193 \U0001f195 \U0001f196 \U0001f197 \U0001f199 \U0001f3e7": @"the19", | |
| 334 | + @"1;DROP TABLE users": @"the1DROPTABLEUsers", | |
| 335 | + @"-1E02": @"the1E02", | |
| 336 | + @"1E2": @"the1E2", | |
| 337 | + @"1#QNAN": @"the1Qnan", | |
| 338 | + @"1#SNAN": @"the1Snan", | |
| 339 | + @"-,": @"the2", | |
| 340 | + @"﷽": @"the20", | |
| 341 | + @"\ufeff": @"the21", | |
| 342 | + @"゚・✿ヾ╲(。◕‿◕。)╱✿・゚": @"the22", | |
| 343 | + @"\ufffe": @"the23", | |
| 344 | + @"-.": @"the3", | |
| 345 | + @"<>?:\"{}|_+": @"the4", | |
| 346 | + @"\\": @"the5", | |
| 347 | + @"\302\200\302\201\302\202\302\203\302\204\302\206\302\207\302\210\302\211\302\212\302\213\302\214\302\215\302\216\302\217\302\220\302\221\302\222\302\223\302\224\302\225\302\226\302\227\302\230\302\231\302\232\302\233\302\234\302\235\302\236\302\237": @"the6", | |
| 348 | + @"\302\255\u0600\u0601\u0602\u0603\u0604\u0605\u061c\u06dd\u070f\u180e\u200b\u200c\u200d\u200e\u200f\u202a\u202b\u202c\u202d\u202e\u2060\u2061\u2062\u2063\u2064\u2066\u2067\u2068\u2069\u206a\u206b\u206c\u206d\u206e\u206f\ufeff\ufff9\ufffa\ufffb\U000110bd\U0001bca0\U0001bca1\U0001bca2\U0001bca3\U0001d173\U0001d174\U0001d175\U0001d176\U0001d177\U0001d178\U0001d179\U0001d17a\U000e0001\U000e0020\U000e0021\U000e0022\U000e0023\U000e0024\U000e0025\U000e0026\U000e0027\U000e0028\U000e0029\U000e002a\U000e002b\U000e002c\U000e002d\U000e002e\U000e002f\U000e0030\U000e0031\U000e0032\U000e0033\U000e0034\U000e0035\U000e0036\U000e0037\U000e0038\U000e0039\U000e003a\U000e003b\U000e003c\U000e003d\U000e003e\U000e003f\U000e0040\U000e0041\U000e0042\U000e0043\U000e0044\U000e0045\U000e0046\U000e0047\U000e0048\U000e0049\U000e004a\U000e004b\U000e004c\U000e004d\U000e004e\U000e004f\U000e0050\U000e0051\U000e0052\U000e0053\U000e0054\U000e0055\U000e0056\U000e0057\U000e0058\U000e0059\U000e005a\U000e005b\U000e005c\U000e005d\U000e005e\U000e005f\U000e0060\U000e0061\U000e0062\U000e0063\U000e0064\U000e0065\U000e0066\U000e0067\U000e0068\U000e0069\U000e006a\U000e006b\U000e006c\U000e006d\U000e006e\U000e006f\U000e0070\U000e0071\U000e0072\U000e0073\U000e0074\U000e0075\U000e0076\U000e0077\U000e0078\U000e0079\U000e007a\U000e007b\U000e007c\U000e007d\U000e007e\U000e007f": @"the7", | |
| 349 | + @"₀₁₂": @"the8", | |
| 350 | + @"⒯⒣⒠ ⒬⒰⒤⒞⒦ ⒝⒭⒪⒲⒩ ⒡⒪⒳ ⒥⒰⒨⒫⒮ ⒪⒱⒠⒭ ⒯⒣⒠ ⒧⒜⒵⒴ ⒟⒪⒢": @"the9", | |
| 351 | + @"999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999": @"the999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999", | |
| 352 | + @"false": @"theFalse", | |
| 353 | + @"# The next two lines may appear to be blank or mojibake in some viewers.": @"theNextTwoLinesMayAppearToBeBlankOrMojibakeInSomeViewers", | |
| 354 | + @"The quic\010\010\010\010\010\010k brown fo\007\007\007\007\007\007\007\007\007\007\007x... [Beeeep]": @"theQuicKBrownFoXBeeeep", | |
| 355 | + @"\u2066test\u2067": @"theTest", | |
| 356 | + @"٠١٢٣٤٥٦٧٨٩": @"the٠١٢٣٤٥٦٧٨٩", | |
| 357 | + @"#\tTwo-Byte Characters": @"twoByteCharacters", | |
| 358 | + @"# U+0000, U+000A, or U+000D (NUL, LF, CR).": @"u0000U000AOrU000DNULLFCR", | |
| 359 | + @"<u oncopy=alert()> Copy me</u>": @"uOncopyAlertCopyMeU", | |
| 360 | + @"undef": @"undef", | |
| 361 | + @"#\tUnicode font": @"unicodeFont", | |
| 362 | + @"#\tUnicode Numbers": @"unicodeNumbers", | |
| 363 | + @"#\tUnwanted Interpolation": @"unwantedInterpolation", | |
| 364 | + @"%x('ls -al /')": @"xLsAl", | |
| 365 | + @"Z̮̞̠͙͔ͅḀ̗̞͈̻̗Ḷ͙͎̯̹̞͓G̻O̭̗̮": @"zḀḶGO", | |
| 366 | + @"¡™£¢∞§¶•ªº–≠": @"ªº", | |
| 367 | + @"¸˛Ç◊ı˜Â¯˘¿": @"çIÂ", | |
| 368 | + @"Œ„´‰ˇÁ¨ˆØ∏”’": @"œÁØ", | |
| 369 | + @"œ∑´®†¥¨ˆøπ“‘": @"œØπ", | |
| 370 | + @"( ͡° ͜ʖ ͡°)": @"ʖ", | |
| 371 | + @"הָיְתָהtestالصفحات التّحول": @"הָיְתָהTestالصفحاتالتّحول", | |
| 372 | + @"ثم نفس سقطت وبالتحديد،, جزيرتي باستخدام أن دنو. إذ هنا؟ الستار وتنصيب كان. أهّل ايطاليا، بريطانيا-فرنسا قد أخذ. سليمان، إتفاقية بين ما, يذكر الحدود أي بعد, معاملة بولندا، الإطلاق عل إيو.": @"ثمنفسسقطتوبالتحديدجزيرتيباستخدامأندنوإذهناالستاروتنصيبكانأهّلايطاليابريطانيافرنساقدأخذسليمانإتفاقيةبينمايذكرالحدودأيبعدمعاملةبولنداالإطلاقعلإيو", | |
| 373 | + @"ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็": @"ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็", | |
| 374 | + @"Ⱥ": @"ⱥ", | |
| 375 | + @"Ⱦ": @"ⱦ", | |
| 376 | + @"パーティーへ行かないか": @"パーティーへ行かないか", | |
| 377 | + @"和製漢語": @"和製漢語", | |
| 378 | + @"田中さんにあげて下さい": @"田中さんにあげて下さい", | |
| 379 | + @"`⁄€‹›fifl‡°·‚—±": @"fifl", | |
| 380 | + @"`ィ(´∀`∩": @"ィ", | |
| 381 | + }; | |
| 382 | +} | |
| 383 | + | |
| 384 | ++ (instancetype)fromJSONDictionary:(NSDictionary *)dict | |
| 385 | +{ | |
| 386 | + return [dict isKindOfClass:NSDictionary.class] ? [[QTA alloc] initWithJSONDictionary:dict] : nil; | |
| 387 | +} | |
| 388 | + | |
| 389 | +- (instancetype)initWithJSONDictionary:(NSDictionary *)dict | |
| 390 | +{ | |
| 391 | + if (self = [super init]) { | |
| 392 | + if (![dict[@"!@#$%^&*()`~"] isKindOfClass:NSString.class]) return nil; | |
| 393 | + if (![dict[@"-0"] isKindOfClass:NSString.class]) return nil; | |
| 394 | + if (![dict[@"0,00"] isKindOfClass:NSString.class]) return nil; | |
| 395 | + if (![dict[@"0.0/0.0"] isKindOfClass:NSString.class]) return nil; | |
| 396 | + if (![dict[@"-1"] isKindOfClass:NSString.class]) return nil; | |
| 397 | + if (![dict[@"1'000'000.00"] isKindOfClass:NSString.class]) return nil; | |
| 398 | + if (![dict[@"1E02"] isKindOfClass:NSString.class]) return nil; | |
| 399 | + if (![dict[@"';alert(123);t='"] isKindOfClass:NSString.class]) return nil; | |
| 400 | + if (![dict[@"False"] isKindOfClass:NSString.class]) return nil; | |
| 401 | + if (![dict[@"<a href=javascript:javascript:alert(1)>XXX</a>"] isKindOfClass:NSString.class]) return nil; | |
| 402 | + if (![dict[@"<a href=\"javascript\\x09:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 403 | + if (![dict[@"<a href=\"javascript\\x0A:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 404 | + if (![dict[@"<a href=\"javascript\\x3A:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 405 | + if (![dict[@"<a href=\"\\x01javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 406 | + if (![dict[@"<a href=\"\\x05javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 407 | + if (![dict[@"<a href=\"\\x08javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 408 | + if (![dict[@"<a href=\"\\x09javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 409 | + if (![dict[@"<a href=\"\\x0Cjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 410 | + if (![dict[@"<a href=\"\\x10javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 411 | + if (![dict[@"<a href=\"\\x11javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 412 | + if (![dict[@"<a href=\"\\x13javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 413 | + if (![dict[@"<a href=\"\\x17javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 414 | + if (![dict[@"<a href=\"\\x1Fjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 415 | + if (![dict[@"<a href=\"\\xC2\\xA0javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 416 | + if (![dict[@"<a href=\"\\xE1\\x9A\\x80javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 417 | + if (![dict[@"<a href=\"\\xE1\\xA0\\x8Ejavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 418 | + if (![dict[@"<a href=\"\\xE2\\x80\\x83javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 419 | + if (![dict[@"<a href=\"\\xE2\\x80\\x84javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 420 | + if (![dict[@"<a href=\"\\xE2\\x80\\x86javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 421 | + if (![dict[@"<a href=\"\\xE2\\x80\\x87javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 422 | + if (![dict[@"<a href=\"\\xE2\\x80\\xA8javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 423 | + if (![dict[@"nil"] isKindOfClass:NSString.class]) return nil; | |
| 424 | + if (![dict[@"TRUE"] isKindOfClass:NSString.class]) return nil; | |
| 425 | + if (![dict[@"\u202btest\u202b"] isKindOfClass:NSString.class]) return nil; | |
| 426 | + if (![dict[@"True"] isKindOfClass:NSString.class]) return nil; | |
| 427 | + if (![dict[@"ABC<div style=\"x:exp\\x00ression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 428 | + if (![dict[@"ABC<div style=\"x:exp\\x5Cression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 429 | + if (![dict[@"ABC<div style=\"x:\\x09expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 430 | + if (![dict[@"ABC<div style=\"x:\\x0Bexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 431 | + if (![dict[@"ABC<div style=\"x:\\x20expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 432 | + if (![dict[@"ABC<div style=\"x\\x3Aexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 433 | + if (![dict[@"ABC<div style=\"x:\\xC2\\xA0expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 434 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x80expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 435 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x84expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 436 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x89expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 437 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x8Bexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 438 | + if (![dict[@";alert(123);"] isKindOfClass:NSString.class]) return nil; | |
| 439 | + if (![dict[@"\";alert(123);t=\""] isKindOfClass:NSString.class]) return nil; | |
| 440 | + if (![dict[@"\\\";alert('XSS');//"] isKindOfClass:NSString.class]) return nil; | |
| 441 | + if (![dict[@"# and U+200B (ZERO WIDTH SPACE), which are in the C categories but are often"] isKindOfClass:NSString.class]) return nil; | |
| 442 | + if (![dict[@","] isKindOfClass:NSString.class]) return nil; | |
| 443 | + if (![dict[@"Arsenal canal"] isKindOfClass:NSString.class]) return nil; | |
| 444 | + if (![dict[@"\" autofocus onkeyup=\"javascript:alert(123)"] isKindOfClass:NSString.class]) return nil; | |
| 445 | + if (![dict[@"AUX"] isKindOfClass:NSString.class]) return nil; | |
| 446 | + if (![dict[@"#\tChanging length when lowercased"] isKindOfClass:NSString.class]) return nil; | |
| 447 | + if (![dict[@"#\tCharacters which increase in length (2 to 3 bytes) when lowercased"] isKindOfClass:NSString.class]) return nil; | |
| 448 | + if (![dict[@"classic"] isKindOfClass:NSString.class]) return nil; | |
| 449 | + if (![dict[@"#\tCommand Injection (Ruby)"] isKindOfClass:NSString.class]) return nil; | |
| 450 | + if (![dict[@"%d"] isKindOfClass:NSString.class]) return nil; | |
| 451 | + if (![dict[@"Dick Van Dyke"] isKindOfClass:NSString.class]) return nil; | |
| 452 | + if (![dict[@"Dr. Herman I. Libshitz"] isKindOfClass:NSString.class]) return nil; | |
| 453 | + if (![dict[@" "] isKindOfClass:NSString.class]) return nil; | |
| 454 | + if (![dict[@"$ENV{'HOME'}"] isKindOfClass:NSString.class]) return nil; | |
| 455 | + if (![dict[@"../../../../../../../../../../../etc/hosts"] isKindOfClass:NSString.class]) return nil; | |
| 456 | + if (![dict[@"../../../../../../../../../../../etc/passwd%00"] isKindOfClass:NSString.class]) return nil; | |
| 457 | + if (![dict[@"# fonts, and have a number of special behaviors"] isKindOfClass:NSString.class]) return nil; | |
| 458 | + if (![dict[@"<foo val=`bar' />"] isKindOfClass:NSString.class]) return nil; | |
| 459 | + if (![dict[@"$HOME"] isKindOfClass:NSString.class]) return nil; | |
| 460 | + if (![dict[@"#\tHuman injection"] isKindOfClass:NSString.class]) return nil; | |
| 461 | + if (![dict[@"̡͓̞ͅI̗̘̦͝n͇͇͙v̮̫ok̲̫̙͈i̖͙̭̹̠̞n̡̻̮̣̺g̲͈͙̭͙̬͎ ̰t͔̦h̞̲e̢̤ ͍̬̲͖f̴̘͕̣è͖ẹ̥̩l͖͔͚i͓͚̦͠n͖͍̗͓̳̮g͍ ̨o͚̪͡f̘̣̬ ̖̘͖̟͙̮c҉͔̫͖͓͇͖ͅh̵̤̣͚͔á̗̼͕ͅo̼̣̥s̱͈̺̖̦̻͢.̛̖̞̠̫̰"] isKindOfClass:NSString.class]) return nil; | |
| 462 | + if (![dict[@"<!--[if<img src=x onerror=javascript:alert(1)//]> -->"] isKindOfClass:NSString.class]) return nil; | |
| 463 | + if (![dict[@"<!--[if]><script>javascript:alert(1)</script -->"] isKindOfClass:NSString.class]) return nil; | |
| 464 | + if (![dict[@"<IMG SRC=\"jav ascript:alert('XSS');\">"] isKindOfClass:NSString.class]) return nil; | |
| 465 | + if (![dict[@"<IMG SRC=\"jav
ascript:alert('XSS');\">"] isKindOfClass:NSString.class]) return nil; | |
| 466 | + if (![dict[@"<IMG SRC=\"jav
ascript:alert('XSS');\">"] isKindOfClass:NSString.class]) return nil; | |
| 467 | + if (![dict[@"<IMG SRC=javascript:alert('XSS')>"] isKindOfClass:NSString.class]) return nil; | |
| 468 | + if (![dict[@"<img src\\x09=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 469 | + if (![dict[@"<img src\\x11=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 470 | + if (![dict[@"<img src=x onerror=\\x00\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 471 | + if (![dict[@"<img src=x onerror=\\x09\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 472 | + if (![dict[@"<img src=x\\x09onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 473 | + if (![dict[@"<img src=x\\x10onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 474 | + if (![dict[@"<img src=x\\x11onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 475 | + if (![dict[@"<img src=x\\x12onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 476 | + if (![dict[@"<img src=x\\x13onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 477 | + if (![dict[@"`\"'><img src=xxx:x \\x00onerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil; | |
| 478 | + if (![dict[@"`\"'><img src=xxx:x \\x0Bonerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil; | |
| 479 | + if (![dict[@"`\"'><img src=xxx:x \\x2Fonerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil; | |
| 480 | + if (![dict[@"<img \\x00src=x onerror=\"alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 481 | + if (![dict[@"<img\\x10src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 482 | + if (![dict[@"<img\\x13src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 483 | + if (![dict[@"<img\\x32src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 484 | + if (![dict[@"<img \\x39src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 485 | + if (![dict[@"INF"] isKindOfClass:NSString.class]) return nil; | |
| 486 | + if (![dict[@"-Infinity"] isKindOfClass:NSString.class]) return nil; | |
| 487 | + if (![dict[@"#\tInnocuous strings which may be blocked by profanity filters (https://en.wikipedia.org/wiki/Scunthorpe_problem)"] isKindOfClass:NSString.class]) return nil; | |
| 488 | + if (![dict[@"dontMakeAMap"] isKindOfClass:NSNumber.class]) return nil; | |
| 489 | + if (![dict[@"Jimmy Clitheroe"] isKindOfClass:NSString.class]) return nil; | |
| 490 | + if (![dict[@"Kernel.exit(1)"] isKindOfClass:NSString.class]) return nil; | |
| 491 | + if (![dict[@"#\tKnown CVEs and Vulnerabilities"] isKindOfClass:NSString.class]) return nil; | |
| 492 | + if (![dict[@"Lightwater Country Park"] isKindOfClass:NSString.class]) return nil; | |
| 493 | + if (![dict[@"LPT2"] isKindOfClass:NSString.class]) return nil; | |
| 494 | + if (![dict[@"LPT3"] isKindOfClass:NSString.class]) return nil; | |
| 495 | + if (![dict[@"`ls -al /`"] isKindOfClass:NSString.class]) return nil; | |
| 496 | + if (![dict[@"#\tMSDOS/Windows Special Filenames"] isKindOfClass:NSString.class]) return nil; | |
| 497 | + if (![dict[@"# Non-whitespace C1 controls: U+0080 through U+0084 and U+0086 through U+009F."] isKindOfClass:NSString.class]) return nil; | |
| 498 | + if (![dict[@"None"] isKindOfClass:NSString.class]) return nil; | |
| 499 | + if (![dict[@"(null)"] isKindOfClass:NSString.class]) return nil; | |
| 500 | + if (![dict[@"'\"'"] isKindOfClass:NSString.class]) return nil; | |
| 501 | + if (![dict[@"0"] isKindOfClass:NSString.class]) return nil; | |
| 502 | + if (![dict[@"1"] isKindOfClass:NSString.class]) return nil; | |
| 503 | + if (![dict[@" onfocus=JaVaSCript:alert(123) autofocus"] isKindOfClass:NSString.class]) return nil; | |
| 504 | + if (![dict[@"' OR '1'='1"] isKindOfClass:NSString.class]) return nil; | |
| 505 | + if (![dict[@"Penistone Community Church"] isKindOfClass:NSString.class]) return nil; | |
| 506 | + if (![dict[@"perl -e 'print \"<IMG SRC=java\\0script:alert(\\\"XSS\\\")>\";' > out"] isKindOfClass:NSString.class]) return nil; | |
| 507 | + if (![dict[@"PRN"] isKindOfClass:NSString.class]) return nil; | |
| 508 | + if (![dict[@"RomansInSussex.co.uk"] isKindOfClass:NSString.class]) return nil; | |
| 509 | + if (![dict[@"%s"] isKindOfClass:NSString.class]) return nil; | |
| 510 | + if (![dict[@"<<< %s(un='%s') = %u"] isKindOfClass:NSString.class]) return nil; | |
| 511 | + if (![dict[@"<sc<script>ript>alert(123)</sc</script>ript>"] isKindOfClass:NSString.class]) return nil; | |
| 512 | + if (![dict[@"\"><script>alert(123);</script x=\""] isKindOfClass:NSString.class]) return nil; | |
| 513 | + if (![dict[@"#\tScript Injection"] isKindOfClass:NSString.class]) return nil; | |
| 514 | + if (![dict[@"<SCRIPT SRC=http://ha.ckers.org/xss.js?< B >"] isKindOfClass:NSString.class]) return nil; | |
| 515 | + if (![dict[@"<SCRIPT/SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT>"] isKindOfClass:NSString.class]) return nil; | |
| 516 | + if (![dict[@"</script><script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 517 | + if (![dict[@"\"`'><script>\\x00javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 518 | + if (![dict[@"<script\\x09type=\"text/javascript\">javascript:alert(1);</script>"] isKindOfClass:NSString.class]) return nil; | |
| 519 | + if (![dict[@"\"`'><script>\\x0Cjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 520 | + if (![dict[@"\"`'><script>\\x0Djavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 521 | + if (![dict[@"<script\\x20type=\"text/javascript\">javascript:alert(1);</script>"] isKindOfClass:NSString.class]) return nil; | |
| 522 | + if (![dict[@"<script\\x3Etype=\"text/javascript\">javascript:alert(1);</script>"] isKindOfClass:NSString.class]) return nil; | |
| 523 | + if (![dict[@"\"`'><script>\\xC2\\x85javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 524 | + if (![dict[@"\"`'><script>\\xC2\\xA0javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 525 | + if (![dict[@"\"`'><script>\\xE1\\x9A\\x80javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 526 | + if (![dict[@"\"`'><script>\\xE1\\xA0\\x8Ejavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 527 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x81javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 528 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x86javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 529 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x89javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 530 | + if (![dict[@"\"`'><script>\\xE2\\x81\\x9Fjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 531 | + if (![dict[@"\"`'><script>\\xEF\\xBB\\xBFjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 532 | + if (![dict[@"\"`'><script>\\xF0\\x90\\x96\\x9Ajavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 533 | + if (![dict[@"<SCRIPT/XSS SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT>"] isKindOfClass:NSString.class]) return nil; | |
| 534 | + if (![dict[@"(╯°□°)╯︵ ┻━┻)"] isKindOfClass:NSString.class]) return nil; | |
| 535 | + if (![dict[@"{0}"] isKindOfClass:NSString.class]) return nil; | |
| 536 | + if (![dict[@"#\tSQL Injection"] isKindOfClass:NSString.class]) return nil; | |
| 537 | + if (![dict[@"#\tString which can reveal system files when parsed by a badly configured XML parser"] isKindOfClass:NSString.class]) return nil; | |
| 538 | + if (![dict[@"#\tStrings that test for known vulnerabilities"] isKindOfClass:NSString.class]) return nil; | |
| 539 | + if (![dict[@"#\tStrings which can be accidentally expanded into different strings if evaluated in the wrong context, e.g. used as a printf format string or via Perl or shell eval. Might expose sensitive data from the program doing the interpolation, or might just represent the wrong string."] isKindOfClass:NSString.class]) return nil; | |
| 540 | + if (![dict[@"#\tStrings which can call system commands within Ruby/Rails applications"] isKindOfClass:NSString.class]) return nil; | |
| 541 | + if (![dict[@"#\tStrings which consists of Japanese-style emoticons which are popular on the web"] isKindOfClass:NSString.class]) return nil; | |
| 542 | + if (![dict[@"#\tStrings which contain bold/italic/etc. versions of normal characters"] isKindOfClass:NSString.class]) return nil; | |
| 543 | + if (![dict[@"#\tStrings which contain common unicode symbols (e.g. smart quotes)"] isKindOfClass:NSString.class]) return nil; | |
| 544 | + if (![dict[@"#\tStrings which contain Emoji; should be the same behavior as two-byte characters, but not always"] isKindOfClass:NSString.class]) return nil; | |
| 545 | + if (![dict[@"#\tStrings which contain misplaced quotation marks; can cause encoding errors"] isKindOfClass:NSString.class]) return nil; | |
| 546 | + if (![dict[@"#\tStrings which contain unicode subscripts/superscripts; can cause rendering issues"] isKindOfClass:NSString.class]) return nil; | |
| 547 | + if (![dict[@"#\tStrings which crashed iMessage in various versions of iOS"] isKindOfClass:NSString.class]) return nil; | |
| 548 | + if (![dict[@"#\tStrings which may cause human to reinterpret worldview"] isKindOfClass:NSString.class]) return nil; | |
| 549 | + if (![dict[@"Super Bowl XXX"] isKindOfClass:NSString.class]) return nil; | |
| 550 | + if (![dict[@"\u202a\u202atest\u202a"] isKindOfClass:NSString.class]) return nil; | |
| 551 | + if (![dict[@"</textarea><script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 552 | + if (![dict[@"'"] isKindOfClass:NSString.class]) return nil; | |
| 553 | + if (![dict[@"+0"] isKindOfClass:NSString.class]) return nil; | |
| 554 | + if (![dict[@"0..0"] isKindOfClass:NSString.class]) return nil; | |
| 555 | + if (![dict[@"0,0,0"] isKindOfClass:NSString.class]) return nil; | |
| 556 | + if (![dict[@"0,0/0,0"] isKindOfClass:NSString.class]) return nil; | |
| 557 | + if (![dict[@"00˙Ɩ$-"] isKindOfClass:NSString.class]) return nil; | |
| 558 | + if (![dict[@"0x0"] isKindOfClass:NSString.class]) return nil; | |
| 559 | + if (![dict[@",./;'[]\\-="] isKindOfClass:NSString.class]) return nil; | |
| 560 | + if (![dict[@"1/0"] isKindOfClass:NSString.class]) return nil; | |
| 561 | + if (![dict[@"1.00"] isKindOfClass:NSString.class]) return nil; | |
| 562 | + if (![dict[@"1.0/0.0"] isKindOfClass:NSString.class]) return nil; | |
| 563 | + if (![dict[@"1'000,00"] isKindOfClass:NSString.class]) return nil; | |
| 564 | + if (![dict[@"1 000 000.00"] isKindOfClass:NSString.class]) return nil; | |
| 565 | + if (![dict[@"\U0001d47b\U0001d489\U0001d486 \U0001d492\U0001d496\U0001d48a\U0001d484\U0001d48c \U0001d483\U0001d493\U0001d490\U0001d498\U0001d48f \U0001d487\U0001d490\U0001d499 \U0001d48b\U0001d496\U0001d48e\U0001d491\U0001d494 \U0001d490\U0001d497\U0001d486\U0001d493 \U0001d495\U0001d489\U0001d486 \U0001d48d\U0001d482\U0001d49b\U0001d49a \U0001d485\U0001d490\U0001d488"] isKindOfClass:NSString.class]) return nil; | |
| 566 | + if (![dict[@"1/2"] isKindOfClass:NSString.class]) return nil; | |
| 567 | + if (![dict[@"123456789012345678901234567890123456789"] isKindOfClass:NSString.class]) return nil; | |
| 568 | + if (![dict[@"\U0001d4e3\U0001d4f1\U0001d4ee \U0001d4fa\U0001d4fe\U0001d4f2\U0001d4ec\U0001d4f4 \U0001d4eb\U0001d4fb\U0001d4f8\U0001d500\U0001d4f7 \U0001d4ef\U0001d4f8\U0001d501 \U0001d4f3\U0001d4fe\U0001d4f6\U0001d4f9\U0001d4fc \U0001d4f8\U0001d4ff\U0001d4ee\U0001d4fb \U0001d4fd\U0001d4f1\U0001d4ee \U0001d4f5\U0001d4ea\U0001d503\U0001d502 \U0001d4ed\U0001d4f8\U0001d4f0"] isKindOfClass:NSString.class]) return nil; | |
| 569 | + if (![dict[@"\U0001d57f\U0001d58d\U0001d58a \U0001d596\U0001d59a\U0001d58e\U0001d588\U0001d590 \U0001d587\U0001d597\U0001d594\U0001d59c\U0001d593 \U0001d58b\U0001d594\U0001d59d \U0001d58f\U0001d59a\U0001d592\U0001d595\U0001d598 \U0001d594\U0001d59b\U0001d58a\U0001d597 \U0001d599\U0001d58d\U0001d58a \U0001d591\U0001d586\U0001d59f\U0001d59e \U0001d589\U0001d594\U0001d58c"] isKindOfClass:NSString.class]) return nil; | |
| 570 | + if (![dict[@"\U0001f1fa\U0001f1f8\U0001f1f7\U0001f1fa\U0001f1f8 \U0001f1e6\U0001f1eb\U0001f1e6\U0001f1f2\U0001f1f8"] isKindOfClass:NSString.class]) return nil; | |
| 571 | + if (![dict[@"\U0001f1fa\U0001f1f8\U0001f1f7\U0001f1fa\U0001f1f8\U0001f1e6"] isKindOfClass:NSString.class]) return nil; | |
| 572 | + if (![dict[@"\U0001f1fa\U0001f1f8\U0001f1f7\U0001f1fa\U0001f1f8\U0001f1e6\U0001f1eb\U0001f1e6\U0001f1f2"] isKindOfClass:NSString.class]) return nil; | |
| 573 | + if (![dict[@"\U0001f469\U0001f3fd"] isKindOfClass:NSString.class]) return nil; | |
| 574 | + if (![dict[@"\U0001f6be \U0001f192 \U0001f193 \U0001f195 \U0001f196 \U0001f197 \U0001f199 \U0001f3e7"] isKindOfClass:NSString.class]) return nil; | |
| 575 | + if (![dict[@"1;DROP TABLE users"] isKindOfClass:NSString.class]) return nil; | |
| 576 | + if (![dict[@"-1E02"] isKindOfClass:NSString.class]) return nil; | |
| 577 | + if (![dict[@"1E2"] isKindOfClass:NSString.class]) return nil; | |
| 578 | + if (![dict[@"1#QNAN"] isKindOfClass:NSString.class]) return nil; | |
| 579 | + if (![dict[@"1#SNAN"] isKindOfClass:NSString.class]) return nil; | |
| 580 | + if (![dict[@"-,"] isKindOfClass:NSString.class]) return nil; | |
| 581 | + if (![dict[@"﷽"] isKindOfClass:NSString.class]) return nil; | |
| 582 | + if (![dict[@"\ufeff"] isKindOfClass:NSString.class]) return nil; | |
| 583 | + if (![dict[@"゚・✿ヾ╲(。◕‿◕。)╱✿・゚"] isKindOfClass:NSString.class]) return nil; | |
| 584 | + if (![dict[@"\ufffe"] isKindOfClass:NSString.class]) return nil; | |
| 585 | + if (![dict[@"-."] isKindOfClass:NSString.class]) return nil; | |
| 586 | + if (![dict[@"<>?:\"{}|_+"] isKindOfClass:NSString.class]) return nil; | |
| 587 | + if (![dict[@"\\"] isKindOfClass:NSString.class]) return nil; | |
| 588 | + if (![dict[@"\302\200\302\201\302\202\302\203\302\204\302\206\302\207\302\210\302\211\302\212\302\213\302\214\302\215\302\216\302\217\302\220\302\221\302\222\302\223\302\224\302\225\302\226\302\227\302\230\302\231\302\232\302\233\302\234\302\235\302\236\302\237"] isKindOfClass:NSString.class]) return nil; | |
| 589 | + if (![dict[@"\302\255\u0600\u0601\u0602\u0603\u0604\u0605\u061c\u06dd\u070f\u180e\u200b\u200c\u200d\u200e\u200f\u202a\u202b\u202c\u202d\u202e\u2060\u2061\u2062\u2063\u2064\u2066\u2067\u2068\u2069\u206a\u206b\u206c\u206d\u206e\u206f\ufeff\ufff9\ufffa\ufffb\U000110bd\U0001bca0\U0001bca1\U0001bca2\U0001bca3\U0001d173\U0001d174\U0001d175\U0001d176\U0001d177\U0001d178\U0001d179\U0001d17a\U000e0001\U000e0020\U000e0021\U000e0022\U000e0023\U000e0024\U000e0025\U000e0026\U000e0027\U000e0028\U000e0029\U000e002a\U000e002b\U000e002c\U000e002d\U000e002e\U000e002f\U000e0030\U000e0031\U000e0032\U000e0033\U000e0034\U000e0035\U000e0036\U000e0037\U000e0038\U000e0039\U000e003a\U000e003b\U000e003c\U000e003d\U000e003e\U000e003f\U000e0040\U000e0041\U000e0042\U000e0043\U000e0044\U000e0045\U000e0046\U000e0047\U000e0048\U000e0049\U000e004a\U000e004b\U000e004c\U000e004d\U000e004e\U000e004f\U000e0050\U000e0051\U000e0052\U000e0053\U000e0054\U000e0055\U000e0056\U000e0057\U000e0058\U000e0059\U000e005a\U000e005b\U000e005c\U000e005d\U000e005e\U000e005f\U000e0060\U000e0061\U000e0062\U000e0063\U000e0064\U000e0065\U000e0066\U000e0067\U000e0068\U000e0069\U000e006a\U000e006b\U000e006c\U000e006d\U000e006e\U000e006f\U000e0070\U000e0071\U000e0072\U000e0073\U000e0074\U000e0075\U000e0076\U000e0077\U000e0078\U000e0079\U000e007a\U000e007b\U000e007c\U000e007d\U000e007e\U000e007f"] isKindOfClass:NSString.class]) return nil; | |
| 590 | + if (![dict[@"₀₁₂"] isKindOfClass:NSString.class]) return nil; | |
| 591 | + if (![dict[@"⒯⒣⒠ ⒬⒰⒤⒞⒦ ⒝⒭⒪⒲⒩ ⒡⒪⒳ ⒥⒰⒨⒫⒮ ⒪⒱⒠⒭ ⒯⒣⒠ ⒧⒜⒵⒴ ⒟⒪⒢"] isKindOfClass:NSString.class]) return nil; | |
| 592 | + if (![dict[@"999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999"] isKindOfClass:NSString.class]) return nil; | |
| 593 | + if (![dict[@"false"] isKindOfClass:NSString.class]) return nil; | |
| 594 | + if (![dict[@"# The next two lines may appear to be blank or mojibake in some viewers."] isKindOfClass:NSString.class]) return nil; | |
| 595 | + if (![dict[@"The quic\010\010\010\010\010\010k brown fo\007\007\007\007\007\007\007\007\007\007\007x... [Beeeep]"] isKindOfClass:NSString.class]) return nil; | |
| 596 | + if (![dict[@"\u2066test\u2067"] isKindOfClass:NSString.class]) return nil; | |
| 597 | + if (![dict[@"٠١٢٣٤٥٦٧٨٩"] isKindOfClass:NSString.class]) return nil; | |
| 598 | + if (![dict[@"#\tTwo-Byte Characters"] isKindOfClass:NSString.class]) return nil; | |
| 599 | + if (![dict[@"# U+0000, U+000A, or U+000D (NUL, LF, CR)."] isKindOfClass:NSString.class]) return nil; | |
| 600 | + if (![dict[@"<u oncopy=alert()> Copy me</u>"] isKindOfClass:NSString.class]) return nil; | |
| 601 | + if (![dict[@"undef"] isKindOfClass:NSString.class]) return nil; | |
| 602 | + if (![dict[@"#\tUnicode font"] isKindOfClass:NSString.class]) return nil; | |
| 603 | + if (![dict[@"#\tUnicode Numbers"] isKindOfClass:NSString.class]) return nil; | |
| 604 | + if (![dict[@"#\tUnwanted Interpolation"] isKindOfClass:NSString.class]) return nil; | |
| 605 | + if (![dict[@"%x('ls -al /')"] isKindOfClass:NSString.class]) return nil; | |
| 606 | + if (![dict[@"Z̮̞̠͙͔ͅḀ̗̞͈̻̗Ḷ͙͎̯̹̞͓G̻O̭̗̮"] isKindOfClass:NSString.class]) return nil; | |
| 607 | + if (![dict[@"¡™£¢∞§¶•ªº–≠"] isKindOfClass:NSString.class]) return nil; | |
| 608 | + if (![dict[@"¸˛Ç◊ı˜Â¯˘¿"] isKindOfClass:NSString.class]) return nil; | |
| 609 | + if (![dict[@"Œ„´‰ˇÁ¨ˆØ∏”’"] isKindOfClass:NSString.class]) return nil; | |
| 610 | + if (![dict[@"œ∑´®†¥¨ˆøπ“‘"] isKindOfClass:NSString.class]) return nil; | |
| 611 | + if (![dict[@"( ͡° ͜ʖ ͡°)"] isKindOfClass:NSString.class]) return nil; | |
| 612 | + if (![dict[@"הָיְתָהtestالصفحات التّحول"] isKindOfClass:NSString.class]) return nil; | |
| 613 | + if (![dict[@"ثم نفس سقطت وبالتحديد،, جزيرتي باستخدام أن دنو. إذ هنا؟ الستار وتنصيب كان. أهّل ايطاليا، بريطانيا-فرنسا قد أخذ. سليمان، إتفاقية بين ما, يذكر الحدود أي بعد, معاملة بولندا، الإطلاق عل إيو."] isKindOfClass:NSString.class]) return nil; | |
| 614 | + if (![dict[@"ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็"] isKindOfClass:NSString.class]) return nil; | |
| 615 | + if (![dict[@"Ⱥ"] isKindOfClass:NSString.class]) return nil; | |
| 616 | + if (![dict[@"Ⱦ"] isKindOfClass:NSString.class]) return nil; | |
| 617 | + if (![dict[@"パーティーへ行かないか"] isKindOfClass:NSString.class]) return nil; | |
| 618 | + if (![dict[@"和製漢語"] isKindOfClass:NSString.class]) return nil; | |
| 619 | + if (![dict[@"田中さんにあげて下さい"] isKindOfClass:NSString.class]) return nil; | |
| 620 | + if (![dict[@"`⁄€‹›fifl‡°·‚—±"] isKindOfClass:NSString.class]) return nil; | |
| 621 | + if (![dict[@"`ィ(´∀`∩"] isKindOfClass:NSString.class]) return nil; | |
| 622 | + [self setValuesForKeysWithDictionary:dict]; | |
| 623 | + } | |
| 624 | + return self; | |
| 625 | +} | |
| 626 | + | |
| 627 | +- (void)setValue:(nullable id)value forKey:(NSString *)key | |
| 628 | +{ | |
| 629 | + id resolved = QTA.properties[key]; | |
| 630 | + if (resolved) [super setValue:value forKey:resolved]; | |
| 631 | +} | |
| 632 | + | |
| 633 | +- (void)setNilValueForKey:(NSString *)key | |
| 634 | +{ | |
| 635 | + id resolved = QTA.properties[key]; | |
| 636 | + if (resolved) [super setValue:@(0) forKey:resolved]; | |
| 637 | +} | |
| 638 | + | |
| 639 | +- (NSDictionary *)JSONDictionary | |
| 640 | +{ | |
| 641 | + id dict = [[self dictionaryWithValuesForKeys:QTA.properties.allValues] mutableCopy]; | |
| 642 | + | |
| 643 | + for (id jsonName in QTA.properties) { | |
| 644 | + id propertyName = QTA.properties[jsonName]; | |
| 645 | + if (![jsonName isEqualToString:propertyName]) { | |
| 646 | + dict[jsonName] = dict[propertyName]; | |
| 647 | + [dict removeObjectForKey:propertyName]; | |
| 648 | + } | |
| 649 | + } | |
| 650 | + | |
| 651 | + [dict addEntriesFromDictionary:@{ | |
| 652 | + @"dontMakeAMap": _isDontMakeAMap ? @YES : @NO, | |
| 653 | + }]; | |
| 654 | + | |
| 655 | + return dict; | |
| 656 | +} | |
| 657 | +@end | |
| 658 | + | |
| 659 | +@implementation QTB | |
| 660 | ++ (NSDictionary<NSString *, NSString *> *)properties | |
| 661 | +{ | |
| 662 | + static NSDictionary<NSString *, NSString *> *properties; | |
| 663 | + return properties = properties ? properties : @{ | |
| 664 | + @"<a href=http://foo.bar/#x=`y></a><img alt=\"`><img src=x:x onerror=javascript:alert(1)></a>\">": @"aHrefHTTPFooBarXYAImgAltImgSrcXXOnerrorJavascriptAlert1A", | |
| 665 | + @"<a href=\"javascript\\x00:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefJavascriptX00JavascriptAlert1IDFuzzelement1TestA", | |
| 666 | + @"<a href=\"javascript\\x0D:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefJavascriptX0DJavascriptAlert1IDFuzzelement1TestA", | |
| 667 | + @"<a href=\"\\x02javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX02JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 668 | + @"<a href=\"\\x04javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX04JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 669 | + @"<a href=\"\\x0Ajavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX0AjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 670 | + @"<a href=\"\\x0Djavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX0DjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 671 | + @"<a href=\"\\x0Ejavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX0EjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 672 | + @"<a href=\"\\x0Fjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX0FjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 673 | + @"<a href=\"\\x16javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX16JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 674 | + @"<a href=\"\\x19javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX19JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 675 | + @"<a href=\"\\x1Ajavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX1AjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 676 | + @"<a href=\"\\x1Djavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX1DjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 677 | + @"<a href=\"\\x1Ejavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX1EjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 678 | + @"<a href=\"\\xE2\\x80\\x81javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X81JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 679 | + @"<a href=\"\\xE2\\x80\\x82javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X82JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 680 | + @"<a href=\"\\xE2\\x80\\xA9javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80XA9JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 681 | + @"<a href=\"\\xE2\\x80\\xAFjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80XAFjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 682 | + @"ABC<div style=\"x:expression\\x5C(javascript:alert(1)\">DEF": @"abcDivStyleXExpressionX5CJavascriptAlert1DEF", | |
| 683 | + @"ABC<div style=\"x:\\x0Aexpression(javascript:alert(1)\">DEF": @"abcDivStyleXX0AexpressionJavascriptAlert1DEF", | |
| 684 | + @"ABC<div style=\"x:\\x0Dexpression(javascript:alert(1)\">DEF": @"abcDivStyleXX0DexpressionJavascriptAlert1DEF", | |
| 685 | + @"ABC<div style=\"x:\\xE2\\x80\\x82expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X82ExpressionJavascriptAlert1DEF", | |
| 686 | + @"ABC<div style=\"x:\\xE2\\x80\\x83expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X83ExpressionJavascriptAlert1DEF", | |
| 687 | + @"ABC<div style=\"x:\\xE2\\x80\\x85expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X85ExpressionJavascriptAlert1DEF", | |
| 688 | + @"ABC<div style=\"x:\\xE2\\x80\\x87expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X87ExpressionJavascriptAlert1DEF", | |
| 689 | + @"ABC<div style=\"x:\\xE2\\x80\\x8Aexpression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X8AexpressionJavascriptAlert1DEF", | |
| 690 | + @"⁰⁴⁵₀₁₂": @"another", | |
| 691 | + @"# appear in input.": @"appearInInput", | |
| 692 | + @"+++ATH0": @"ath0", | |
| 693 | + @"' autofocus onkeyup='javascript:alert(123)": @"autofocusOnkeyupJavascriptAlert123", | |
| 694 | + @"\t\013\014 \302\205 \u200b\u2028\u2029 ": @"b", | |
| 695 | + @"1'000.00": @"b100000", | |
| 696 | + @"FALSE": @"bFALSE", | |
| 697 | + @"<IMG SRC=# onmouseover=\"alert('xxs')\">": @"bIMGSRCOnmouseoverAlertXxs", | |
| 698 | + @"NIL": @"bNIL", | |
| 699 | + @"--><script>alert(123)</script>": @"bScriptAlert123Script", | |
| 700 | + @"`touch /tmp/blns.fail`": @"bTouchTmpBlnsFail", | |
| 701 | + @"basement": @"basement", | |
| 702 | + @"But now...\033[20Cfor my greatest trick...\033[8m": @"butNow20CforMyGreatestTrick8M", | |
| 703 | + @"# \"Byte order marks\", U+FEFF and U+FFFE, each on its own line.": @"byteOrderMarksUFEFFAndUFFFEEachOnItsOwnLine", | |
| 704 | + @"COM1": @"com1", | |
| 705 | + @"COM3": @"com3", | |
| 706 | + @"# Commonly misinterpreted as additional graphic characters.": @"commonlyMisinterpretedAsAdditionalGraphicCharacters", | |
| 707 | + @"CON": @"con", | |
| 708 | + @"# contexts. Divided into three groups based on (US-layout) keyboard position.": @"contextsDividedIntoThreeGroupsBasedOnUSLayoutKeyboardPosition", | |
| 709 | + @"#\tCredit: https://twitter.com/jifa/status/625776454479970304": @"creditHTTPSTwitterCOMJifaStatus625776454479970304", | |
| 710 | + @"/dev/null; touch /tmp/blns.fail ; echo": @"devNullTouchTmpBlnsFailEcho", | |
| 711 | + @"\001\002\003\004\005\006\007\010\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\177": @"empty", | |
| 712 | + @"eval(\"puts 'hello world'\")": @"evalPutsHelloWorld", | |
| 713 | + @"expression": @"expression", | |
| 714 | + @"File:///": @"file", | |
| 715 | + @"#\tFile Inclusion": @"fileInclusion", | |
| 716 | + @"<foo val=”bar“ />": @"fooValBar", | |
| 717 | + @"# general category Cf (in Unicode 8.0.0).": @"generalCategoryCFInUnicode800", | |
| 718 | + @"̦H̬̤̗̤͝e͜ ̜̥̝̻͍̟́w̕h̖̯͓o̝͙̖͎̱̮ ҉̺̙̞̟͈W̷̼̭a̺̪͍į͈͕̭͙̯̜t̶̼̮s̘͙͖̕ ̠̫̠B̻͍͙͉̳ͅe̵h̵̬͇̫͙i̹͓̳̳̮͎̫̕n͟d̴̪̜̖ ̰͉̩͇͙̲͞ͅT͖̼͓̪͢h͏͓̮̻e̬̝̟ͅ ̤̹̝W͙̞̝͔͇͝ͅa͏͓͔̹̼̣l̴͔̰̤̟͔ḽ̫.͕": @"hEWHOWAĮTSBEHINDTHEWALḼ", | |
| 719 | + @"--help": @"help", | |
| 720 | + @"http://a/%%30%30": @"httpA3030", | |
| 721 | + @"#\tiOS Vulnerabilities": @"iOSVulnerabilities", | |
| 722 | + @"If you're reading this, you've been in a coma for almost 20 years now. We're trying a new technique. We don't know where this message will end up in your dream, but we hope it works. Please wake up, we miss you.": @"ifYouReReadingThisYouVeBeenInAComaForAlmost20YearsNowWeReTryingANewTechniqueWeDonTKnowWhereThisMessageWillEndUpInYourDreamButWeHopeItWorksPleaseWakeUpWeMissYou", | |
| 723 | + @"<iframe src=http://ha.ckers.org/scriptlet.html <": @"iframeSrcHTTPHaCkersOrgScriptletHTML", | |
| 724 | + @"<IMG SRC=\"  javascript:alert('XSS');\">": @"imgSRC14JavascriptAlertXSS", | |
| 725 | + @"<IMG SRC=\"jav	ascript:alert('XSS');\">": @"imgSRCJavX09AscriptAlertXSS", | |
| 726 | + @"<IMG SRC= onmouseover=\"alert('xxs')\">": @"imgSRCOnmouseoverAlertXxs", | |
| 727 | + @"<IMG SRC=javascript:alert('XSS')>": @"imgSRCX6AX61X76X61X73X63X72X69X70X74X3AX61X6CX65X72X74X28X27X58X53X53X27X29", | |
| 728 | + @"<IMG SRC=javascript:alert('XSS')>": @"imgSrc00001060000097000011800000970000115000009900001140000105000011200001160000058000009700001080000101000011400001160000040000003900000880000083000008300000390000041", | |
| 729 | + @"<img src\\x00=x onerror=\"javascript:alert(1)\">": @"imgSrcX00XOnerrorJavascriptAlert1", | |
| 730 | + @"<img src=x onerror=\\x11\"javascript:alert(1)\">": @"imgSrcXOnerrorX11JavascriptAlert1", | |
| 731 | + @"<img src=x onerror=\\x12\"javascript:alert(1)\">": @"imgSrcXOnerrorX12JavascriptAlert1", | |
| 732 | + @"`\"'><img src=xxx:x \\x0Aonerror=javascript:alert(1)>": @"imgSrcXxxXX0AonerrorJavascriptAlert1", | |
| 733 | + @"`\"'><img src=xxx:x \\x0Conerror=javascript:alert(1)>": @"imgSrcXxxXX0ConerrorJavascriptAlert1", | |
| 734 | + @"`\"'><img src=xxx:x \\x0Donerror=javascript:alert(1)>": @"imgSrcXxxXX0DonerrorJavascriptAlert1", | |
| 735 | + @"<img \\x00src=x onerror=\"javascript:alert(1)\">": @"imgX00SrcXOnerrorJavascriptAlert1", | |
| 736 | + @"<img \\x11src=x onerror=\"javascript:alert(1)\">": @"imgX11SrcXOnerrorJavascriptAlert1", | |
| 737 | + @"<img \\x12src=x onerror=\"javascript:alert(1)\">": @"imgX12SrcXOnerrorJavascriptAlert1", | |
| 738 | + @"<img \\x47src=x onerror=\"javascript:alert(1)\">": @"imgX47SrcXOnerrorJavascriptAlert1", | |
| 739 | + @"# IRC specific strings": @"ircSpecificStrings", | |
| 740 | + @"dontMakeAMap": @"isDontMakeAMap", | |
| 741 | + @"#\tJapanese Emoticons": @"japaneseEmoticons", | |
| 742 | + @"Kernel.exec(\"ls -al /\")": @"kernelExecLsAl", | |
| 743 | + @"Linda Callahan": @"lindaCallahan", | |
| 744 | + @"NUL": @"nul", | |
| 745 | + @"null": @"null", | |
| 746 | + @"#\tNumeric Strings": @"numericStrings", | |
| 747 | + @"# Often forbidden to appear in various text-based file formats (e.g. XML),": @"oftenForbiddenToAppearInVariousTextBasedFileFormatsEGXML", | |
| 748 | + @"#": @"one", | |
| 749 | + @"\" onfocus=JaVaSCript:alert(123) autofocus": @"onfocusJaVaSCriptAlert123Autofocus", | |
| 750 | + @"' OR 1=1 -- 1": @"or111", | |
| 751 | + @"#\tQuotation Marks": @"quotationMarks", | |
| 752 | + @"# Regional Indicator Symbols": @"regionalIndicatorSymbols", | |
| 753 | + @"# Regional Indicator Symbols can be displayed differently across": @"regionalIndicatorSymbolsCanBeDisplayedDifferentlyAcross", | |
| 754 | + @"#\tReserved Strings": @"reservedStrings", | |
| 755 | + @"\"><script>alert(123)</script>": @"scriptAlert123Script", | |
| 756 | + @"><script>alert(123);</script x=": @"scriptAlert123ScriptX", | |
| 757 | + @"<<SCRIPT>alert(\"XSS\");//<</SCRIPT>": @"scriptAlertXSSSCRIPT", | |
| 758 | + @"<SCRIPT SRC=//ha.ckers.org/.j>": @"scriptSRCHaCkersOrgJ", | |
| 759 | + @"<script src=\"\\\\%(jscript)s\"></script>": @"scriptSrcJscriptSScript", | |
| 760 | + @"\"`'><script>\\x09javascript:alert(1)</script>": @"scriptX09JavascriptAlert1Script", | |
| 761 | + @"<script\\x0Atype=\"text/javascript\">javascript:alert(1);</script>": @"scriptX0AtypeTextJavascriptJavascriptAlert1Script", | |
| 762 | + @"<script\\x0Dtype=\"text/javascript\">javascript:alert(1);</script>": @"scriptX0DtypeTextJavascriptJavascriptAlert1Script", | |
| 763 | + @"\"`'><script>\\x21javascript:alert(1)</script>": @"scriptX21JavascriptAlert1Script", | |
| 764 | + @"\"`'><script>\\x3Bjavascript:alert(1)</script>": @"scriptX3BjavascriptAlert1Script", | |
| 765 | + @"\"`'><script>\\xE2\\x80\\x85javascript:alert(1)</script>": @"scriptXE2X80X85JavascriptAlert1Script", | |
| 766 | + @"\"`'><script>\\xE2\\x80\\x87javascript:alert(1)</script>": @"scriptXE2X80X87JavascriptAlert1Script", | |
| 767 | + @"\"`'><script>\\xE2\\x80\\x8Ajavascript:alert(1)</script>": @"scriptXE2X80X8AjavascriptAlert1Script", | |
| 768 | + @"\"`'><script>\\xE2\\x80\\xA8javascript:alert(1)</script>": @"scriptXE2X80XA8JavascriptAlert1Script", | |
| 769 | + @"\"`'><script>\\xE2\\x80\\xA9javascript:alert(1)</script>": @"scriptXE2X80XA9JavascriptAlert1Script", | |
| 770 | + @"\"`'><script>\\xE2\\x80\\xAFjavascript:alert(1)</script>": @"scriptXE2X80XAFjavascriptAlert1Script", | |
| 771 | + @"\"`'><script>\\xE3\\x80\\x80javascript:alert(1)</script>": @"scriptXE3X80X80JavascriptAlert1Script", | |
| 772 | + @"#\tScunthorpe Problem": @"scunthorpeProblem", | |
| 773 | + @"(。◕ ∀ ◕。)": @"some", | |
| 774 | + @"# Strings that may occur on IRC clients that make security products freak out": @"stringsThatMayOccurOnIRCClientsThatMakeSecurityProductsFreakOut", | |
| 775 | + @"#\tStrings which are reserved characters in MSDOS/Windows": @"stringsWhichAreReservedCharactersInMSDOSWindows", | |
| 776 | + @"#\tStrings which attempt to invoke a benign script injection; shows vulnerability to XSS": @"stringsWhichAttemptToInvokeABenignScriptInjectionShowsVulnerabilityToXSS", | |
| 777 | + @"#\tStrings which contain text that should be rendered RTL if possible (e.g. Arabic, Hebrew)": @"stringsWhichContainTextThatShouldBeRenderedRTLIfPossibleEGArabicHebrew", | |
| 778 | + @"#\tStrings which contain two-byte characters: can cause rendering issues or character-length issues": @"stringsWhichContainTwoByteCharactersCanCauseRenderingIssuesOrCharacterLengthIssues", | |
| 779 | + @"#\tStrings which contain unicode numbers; if the code is localized, it should see the input as numeric": @"stringsWhichContainUnicodeNumbersIfTheCodeIsLocalizedItShouldSeeTheInputAsNumeric", | |
| 780 | + @"#\tStrings which may be used elsewhere in code": @"stringsWhichMayBeUsedElsewhereInCode", | |
| 781 | + @"#\tTerminal escape codes": @"terminalEscapeCodes", | |
| 782 | + @"\"": @"the", | |
| 783 | + @"0.00": @"the000", | |
| 784 | + @"01000": @"the01000", | |
| 785 | + @"08": @"the08", | |
| 786 | + @"09": @"the09", | |
| 787 | + @"0xffffffffffffffff": @"the0Xffffffffffffffff", | |
| 788 | + @"❤️ \U0001f494 \U0001f48c \U0001f495 \U0001f49e \U0001f493 \U0001f497 \U0001f496 \U0001f498 \U0001f49d \U0001f49f \U0001f49c \U0001f49b \U0001f49a \U0001f499": @"the1", | |
| 789 | + @"$1.00": @"the100", | |
| 790 | + @"1,0/0,0": @"the1000", | |
| 791 | + @"1 000.00": @"the100000", | |
| 792 | + @"1 000 000,00": @"the100000000", | |
| 793 | + @"1'; DROP TABLE users-- 1": @"the1DROPTABLEUsers1", | |
| 794 | + @"1#IND": @"the1Ind", | |
| 795 | + @"1#INF": @"the1Inf", | |
| 796 | + @"\U0001d54b\U0001d559\U0001d556 \U0001d562\U0001d566\U0001d55a\U0001d554\U0001d55c \U0001d553\U0001d563\U0001d560\U0001d568\U0001d55f \U0001d557\U0001d560\U0001d569 \U0001d55b\U0001d566\U0001d55e\U0001d561\U0001d564 \U0001d560\U0001d567\U0001d556\U0001d563 \U0001d565\U0001d559\U0001d556 \U0001d55d\U0001d552\U0001d56b\U0001d56a \U0001d555\U0001d560\U0001d558": @"the2", | |
| 797 | + @"-2147483648/-1": @"the21474836481", | |
| 798 | + @"2.2250738585072011e-308": @"the22250738585072011E308", | |
| 799 | + @"\U0001f60d": @"the3", | |
| 800 | + @"# The next line may appear to be blank, mojibake, or dingbats in some viewers.": @"theNextLineMayAppearToBeBlankMojibakeOrDingbatsInSomeViewers", | |
| 801 | + @"# The next line may appear to be blank or mojibake in some viewers.": @"theNextLineMayAppearToBeBlankOrMojibakeInSomeViewers", | |
| 802 | + @"# The next line may be flagged for \"trailing whitespace\" in some viewers.": @"theNextLineMayBeFlaggedForTrailingWhitespaceInSomeViewers", | |
| 803 | + @"<script>alert(123)</script>": @"theScriptAlert123Script", | |
| 804 | + @"123": @"the123", | |
| 805 | + @"# This file unfortunately cannot express strings containing": @"thisFileUnfortunatelyCannotExpressStringsContaining", | |
| 806 | + @"$(touch /tmp/blns.fail)": @"touchTmpBlnsFail", | |
| 807 | + @"() { _; } >_[$($())] { touch /tmp/blns.shellshock2.fail; }": @"touchTmpBlnsShellshock2Fail", | |
| 808 | + @"Tyson Gay": @"tysonGay", | |
| 809 | + @"#\tUnicode Symbols": @"unicodeSymbols", | |
| 810 | + @"'`\"><\\x00script>javascript:alert(1)</script>": @"x00ScriptJavascriptAlert1Script", | |
| 811 | + @"'`\"><\\x3Cscript>javascript:alert(1)</script>": @"x3CscriptJavascriptAlert1Script", | |
| 812 | + @"åß∂ƒ©˙∆˚¬…æ": @"åßƑÆ", | |
| 813 | + @"˙ɐnbᴉlɐ ɐuƃɐɯ ǝɹolop ʇǝ ǝɹoqɐl ʇn ʇunpᴉpᴉɔuᴉ ɹodɯǝʇ poɯsnᴉǝ op pǝs 'ʇᴉlǝ ƃuᴉɔsᴉdᴉpɐ ɹnʇǝʇɔǝsuoɔ 'ʇǝɯɐ ʇᴉs ɹolop ɯnsdᴉ ɯǝɹo˥": @"ɐnbᴉlɐⱯuƃɐɯƎɹolopꞱǝƎɹoqɐlꞱnꞱunpᴉpᴉɔuᴉɹodɯǝʇPoɯsnᴉǝOpPǝsꞱᴉlǝƂuᴉɔsᴉdᴉpɐɹnʇǝʇɔǝsuoɔꞱǝɯɐꞱᴉsɹolopƜnsdᴉƜǝɹo", | |
| 814 | + @"Ω≈ç√∫˜µ≤≥÷": @"ωÇΜ", | |
| 815 | + @"ヽ༼ຈل͜ຈ༽ノ ヽ༼ຈل͜ຈ༽ノ": @"ຈل͜ຈノヽຈل͜ຈノ", | |
| 816 | + @"Ṱ̺̺̕o͞ ̷i̲̬͇̪͙n̝̗͕v̟̜̘̦͟o̶̙̰̠kè͚̮̺̪̹̱̤ ̖t̝͕̳̣̻̪͞h̼͓̲̦̳̘̲e͇̣̰̦̬͎ ̢̼̻̱̘h͚͎͙̜̣̲ͅi̦̲̣̰̤v̻͍e̺̭̳̪̰-m̢iͅn̖̺̞̲̯̰d̵̼̟͙̩̼̘̳ ̞̥̱̳̭r̛̗̘e͙p͠r̼̞̻̭̗e̺̠̣͟s̘͇̳͍̝͉e͉̥̯̞̲͚̬͜ǹ̬͎͎̟̖͇̤t͍̬̤͓̼̭͘ͅi̪̱n͠g̴͉ ͏͉ͅc̬̟h͡a̫̻̯͘o̫̟̖͍̙̝͉s̗̦̲.̨̹͈̣": @"ṱOINVOKèTHEHIVEMINDREPRESEǸTINGCHAOS", | |
| 817 | + @"社會科學院語學研究所": @"社會科學院語學研究所", | |
| 818 | + @"部落格": @"部落格", | |
| 819 | + @"사회과학원 어학연구소": @"사회과학원어학연구소", | |
| 820 | + @"찦차를 타고 온 펲시맨과 쑛다리 똠방각하": @"찦차를타고온펲시맨과쑛다리똠방각하", | |
| 821 | + @"ﷺ": @"ﷺ", | |
| 822 | + @"__ロ(,_,*)": @"ロ_", | |
| 823 | + }; | |
| 824 | +} | |
| 825 | + | |
| 826 | ++ (instancetype)fromJSONDictionary:(NSDictionary *)dict | |
| 827 | +{ | |
| 828 | + return [dict isKindOfClass:NSDictionary.class] ? [[QTB alloc] initWithJSONDictionary:dict] : nil; | |
| 829 | +} | |
| 830 | + | |
| 831 | +- (instancetype)initWithJSONDictionary:(NSDictionary *)dict | |
| 832 | +{ | |
| 833 | + if (self = [super init]) { | |
| 834 | + if (![dict[@"<a href=http://foo.bar/#x=`y></a><img alt=\"`><img src=x:x onerror=javascript:alert(1)></a>\">"] isKindOfClass:NSString.class]) return nil; | |
| 835 | + if (![dict[@"<a href=\"javascript\\x00:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 836 | + if (![dict[@"<a href=\"javascript\\x0D:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 837 | + if (![dict[@"<a href=\"\\x02javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 838 | + if (![dict[@"<a href=\"\\x04javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 839 | + if (![dict[@"<a href=\"\\x0Ajavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 840 | + if (![dict[@"<a href=\"\\x0Djavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 841 | + if (![dict[@"<a href=\"\\x0Ejavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 842 | + if (![dict[@"<a href=\"\\x0Fjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 843 | + if (![dict[@"<a href=\"\\x16javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 844 | + if (![dict[@"<a href=\"\\x19javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 845 | + if (![dict[@"<a href=\"\\x1Ajavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 846 | + if (![dict[@"<a href=\"\\x1Djavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 847 | + if (![dict[@"<a href=\"\\x1Ejavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 848 | + if (![dict[@"<a href=\"\\xE2\\x80\\x81javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 849 | + if (![dict[@"<a href=\"\\xE2\\x80\\x82javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 850 | + if (![dict[@"<a href=\"\\xE2\\x80\\xA9javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 851 | + if (![dict[@"<a href=\"\\xE2\\x80\\xAFjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 852 | + if (![dict[@"ABC<div style=\"x:expression\\x5C(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 853 | + if (![dict[@"ABC<div style=\"x:\\x0Aexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 854 | + if (![dict[@"ABC<div style=\"x:\\x0Dexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 855 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x82expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 856 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x83expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 857 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x85expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 858 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x87expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 859 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x8Aexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 860 | + if (![dict[@"⁰⁴⁵₀₁₂"] isKindOfClass:NSString.class]) return nil; | |
| 861 | + if (![dict[@"# appear in input."] isKindOfClass:NSString.class]) return nil; | |
| 862 | + if (![dict[@"+++ATH0"] isKindOfClass:NSString.class]) return nil; | |
| 863 | + if (![dict[@"' autofocus onkeyup='javascript:alert(123)"] isKindOfClass:NSString.class]) return nil; | |
| 864 | + if (![dict[@"\t\013\014 \302\205 \u200b\u2028\u2029 "] isKindOfClass:NSString.class]) return nil; | |
| 865 | + if (![dict[@"1'000.00"] isKindOfClass:NSString.class]) return nil; | |
| 866 | + if (![dict[@"FALSE"] isKindOfClass:NSString.class]) return nil; | |
| 867 | + if (![dict[@"<IMG SRC=# onmouseover=\"alert('xxs')\">"] isKindOfClass:NSString.class]) return nil; | |
| 868 | + if (![dict[@"NIL"] isKindOfClass:NSString.class]) return nil; | |
| 869 | + if (![dict[@"--><script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 870 | + if (![dict[@"`touch /tmp/blns.fail`"] isKindOfClass:NSString.class]) return nil; | |
| 871 | + if (![dict[@"basement"] isKindOfClass:NSString.class]) return nil; | |
| 872 | + if (![dict[@"But now...\033[20Cfor my greatest trick...\033[8m"] isKindOfClass:NSString.class]) return nil; | |
| 873 | + if (![dict[@"# \"Byte order marks\", U+FEFF and U+FFFE, each on its own line."] isKindOfClass:NSString.class]) return nil; | |
| 874 | + if (![dict[@"COM1"] isKindOfClass:NSString.class]) return nil; | |
| 875 | + if (![dict[@"COM3"] isKindOfClass:NSString.class]) return nil; | |
| 876 | + if (![dict[@"# Commonly misinterpreted as additional graphic characters."] isKindOfClass:NSString.class]) return nil; | |
| 877 | + if (![dict[@"CON"] isKindOfClass:NSString.class]) return nil; | |
| 878 | + if (![dict[@"# contexts. Divided into three groups based on (US-layout) keyboard position."] isKindOfClass:NSString.class]) return nil; | |
| 879 | + if (![dict[@"#\tCredit: https://twitter.com/jifa/status/625776454479970304"] isKindOfClass:NSString.class]) return nil; | |
| 880 | + if (![dict[@"/dev/null; touch /tmp/blns.fail ; echo"] isKindOfClass:NSString.class]) return nil; | |
| 881 | + if (![dict[@"\001\002\003\004\005\006\007\010\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\177"] isKindOfClass:NSString.class]) return nil; | |
| 882 | + if (![dict[@"eval(\"puts 'hello world'\")"] isKindOfClass:NSString.class]) return nil; | |
| 883 | + if (![dict[@"expression"] isKindOfClass:NSString.class]) return nil; | |
| 884 | + if (![dict[@"File:///"] isKindOfClass:NSString.class]) return nil; | |
| 885 | + if (![dict[@"#\tFile Inclusion"] isKindOfClass:NSString.class]) return nil; | |
| 886 | + if (![dict[@"<foo val=”bar“ />"] isKindOfClass:NSString.class]) return nil; | |
| 887 | + if (![dict[@"# general category Cf (in Unicode 8.0.0)."] isKindOfClass:NSString.class]) return nil; | |
| 888 | + if (![dict[@"̦H̬̤̗̤͝e͜ ̜̥̝̻͍̟́w̕h̖̯͓o̝͙̖͎̱̮ ҉̺̙̞̟͈W̷̼̭a̺̪͍į͈͕̭͙̯̜t̶̼̮s̘͙͖̕ ̠̫̠B̻͍͙͉̳ͅe̵h̵̬͇̫͙i̹͓̳̳̮͎̫̕n͟d̴̪̜̖ ̰͉̩͇͙̲͞ͅT͖̼͓̪͢h͏͓̮̻e̬̝̟ͅ ̤̹̝W͙̞̝͔͇͝ͅa͏͓͔̹̼̣l̴͔̰̤̟͔ḽ̫.͕"] isKindOfClass:NSString.class]) return nil; | |
| 889 | + if (![dict[@"--help"] isKindOfClass:NSString.class]) return nil; | |
| 890 | + if (![dict[@"http://a/%%30%30"] isKindOfClass:NSString.class]) return nil; | |
| 891 | + if (![dict[@"#\tiOS Vulnerabilities"] isKindOfClass:NSString.class]) return nil; | |
| 892 | + if (![dict[@"If you're reading this, you've been in a coma for almost 20 years now. We're trying a new technique. We don't know where this message will end up in your dream, but we hope it works. Please wake up, we miss you."] isKindOfClass:NSString.class]) return nil; | |
| 893 | + if (![dict[@"<iframe src=http://ha.ckers.org/scriptlet.html <"] isKindOfClass:NSString.class]) return nil; | |
| 894 | + if (![dict[@"<IMG SRC=\"  javascript:alert('XSS');\">"] isKindOfClass:NSString.class]) return nil; | |
| 895 | + if (![dict[@"<IMG SRC=\"jav	ascript:alert('XSS');\">"] isKindOfClass:NSString.class]) return nil; | |
| 896 | + if (![dict[@"<IMG SRC= onmouseover=\"alert('xxs')\">"] isKindOfClass:NSString.class]) return nil; | |
| 897 | + if (![dict[@"<IMG SRC=javascript:alert('XSS')>"] isKindOfClass:NSString.class]) return nil; | |
| 898 | + if (![dict[@"<IMG SRC=javascript:alert('XSS')>"] isKindOfClass:NSString.class]) return nil; | |
| 899 | + if (![dict[@"<img src\\x00=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 900 | + if (![dict[@"<img src=x onerror=\\x11\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 901 | + if (![dict[@"<img src=x onerror=\\x12\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 902 | + if (![dict[@"`\"'><img src=xxx:x \\x0Aonerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil; | |
| 903 | + if (![dict[@"`\"'><img src=xxx:x \\x0Conerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil; | |
| 904 | + if (![dict[@"`\"'><img src=xxx:x \\x0Donerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil; | |
| 905 | + if (![dict[@"<img \\x00src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 906 | + if (![dict[@"<img \\x11src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 907 | + if (![dict[@"<img \\x12src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 908 | + if (![dict[@"<img \\x47src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 909 | + if (![dict[@"# IRC specific strings"] isKindOfClass:NSString.class]) return nil; | |
| 910 | + if (![dict[@"dontMakeAMap"] isKindOfClass:NSNumber.class]) return nil; | |
| 911 | + if (![dict[@"#\tJapanese Emoticons"] isKindOfClass:NSString.class]) return nil; | |
| 912 | + if (![dict[@"Kernel.exec(\"ls -al /\")"] isKindOfClass:NSString.class]) return nil; | |
| 913 | + if (![dict[@"Linda Callahan"] isKindOfClass:NSString.class]) return nil; | |
| 914 | + if (![dict[@"NUL"] isKindOfClass:NSString.class]) return nil; | |
| 915 | + if (![dict[@"null"] isKindOfClass:NSString.class]) return nil; | |
| 916 | + if (![dict[@"#\tNumeric Strings"] isKindOfClass:NSString.class]) return nil; | |
| 917 | + if (![dict[@"# Often forbidden to appear in various text-based file formats (e.g. XML),"] isKindOfClass:NSString.class]) return nil; | |
| 918 | + if (![dict[@"#"] isKindOfClass:NSString.class]) return nil; | |
| 919 | + if (![dict[@"\" onfocus=JaVaSCript:alert(123) autofocus"] isKindOfClass:NSString.class]) return nil; | |
| 920 | + if (![dict[@"' OR 1=1 -- 1"] isKindOfClass:NSString.class]) return nil; | |
| 921 | + if (![dict[@"#\tQuotation Marks"] isKindOfClass:NSString.class]) return nil; | |
| 922 | + if (![dict[@"# Regional Indicator Symbols"] isKindOfClass:NSString.class]) return nil; | |
| 923 | + if (![dict[@"# Regional Indicator Symbols can be displayed differently across"] isKindOfClass:NSString.class]) return nil; | |
| 924 | + if (![dict[@"#\tReserved Strings"] isKindOfClass:NSString.class]) return nil; | |
| 925 | + if (![dict[@"\"><script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 926 | + if (![dict[@"><script>alert(123);</script x="] isKindOfClass:NSString.class]) return nil; | |
| 927 | + if (![dict[@"<<SCRIPT>alert(\"XSS\");//<</SCRIPT>"] isKindOfClass:NSString.class]) return nil; | |
| 928 | + if (![dict[@"<SCRIPT SRC=//ha.ckers.org/.j>"] isKindOfClass:NSString.class]) return nil; | |
| 929 | + if (![dict[@"<script src=\"\\\\%(jscript)s\"></script>"] isKindOfClass:NSString.class]) return nil; | |
| 930 | + if (![dict[@"\"`'><script>\\x09javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 931 | + if (![dict[@"<script\\x0Atype=\"text/javascript\">javascript:alert(1);</script>"] isKindOfClass:NSString.class]) return nil; | |
| 932 | + if (![dict[@"<script\\x0Dtype=\"text/javascript\">javascript:alert(1);</script>"] isKindOfClass:NSString.class]) return nil; | |
| 933 | + if (![dict[@"\"`'><script>\\x21javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 934 | + if (![dict[@"\"`'><script>\\x3Bjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 935 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x85javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 936 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x87javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 937 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x8Ajavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 938 | + if (![dict[@"\"`'><script>\\xE2\\x80\\xA8javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 939 | + if (![dict[@"\"`'><script>\\xE2\\x80\\xA9javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 940 | + if (![dict[@"\"`'><script>\\xE2\\x80\\xAFjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 941 | + if (![dict[@"\"`'><script>\\xE3\\x80\\x80javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 942 | + if (![dict[@"#\tScunthorpe Problem"] isKindOfClass:NSString.class]) return nil; | |
| 943 | + if (![dict[@"(。◕ ∀ ◕。)"] isKindOfClass:NSString.class]) return nil; | |
| 944 | + if (![dict[@"# Strings that may occur on IRC clients that make security products freak out"] isKindOfClass:NSString.class]) return nil; | |
| 945 | + if (![dict[@"#\tStrings which are reserved characters in MSDOS/Windows"] isKindOfClass:NSString.class]) return nil; | |
| 946 | + if (![dict[@"#\tStrings which attempt to invoke a benign script injection; shows vulnerability to XSS"] isKindOfClass:NSString.class]) return nil; | |
| 947 | + if (![dict[@"#\tStrings which contain text that should be rendered RTL if possible (e.g. Arabic, Hebrew)"] isKindOfClass:NSString.class]) return nil; | |
| 948 | + if (![dict[@"#\tStrings which contain two-byte characters: can cause rendering issues or character-length issues"] isKindOfClass:NSString.class]) return nil; | |
| 949 | + if (![dict[@"#\tStrings which contain unicode numbers; if the code is localized, it should see the input as numeric"] isKindOfClass:NSString.class]) return nil; | |
| 950 | + if (![dict[@"#\tStrings which may be used elsewhere in code"] isKindOfClass:NSString.class]) return nil; | |
| 951 | + if (![dict[@"#\tTerminal escape codes"] isKindOfClass:NSString.class]) return nil; | |
| 952 | + if (![dict[@"\""] isKindOfClass:NSString.class]) return nil; | |
| 953 | + if (![dict[@"0.00"] isKindOfClass:NSString.class]) return nil; | |
| 954 | + if (![dict[@"01000"] isKindOfClass:NSString.class]) return nil; | |
| 955 | + if (![dict[@"08"] isKindOfClass:NSString.class]) return nil; | |
| 956 | + if (![dict[@"09"] isKindOfClass:NSString.class]) return nil; | |
| 957 | + if (![dict[@"0xffffffffffffffff"] isKindOfClass:NSString.class]) return nil; | |
| 958 | + if (![dict[@"❤️ \U0001f494 \U0001f48c \U0001f495 \U0001f49e \U0001f493 \U0001f497 \U0001f496 \U0001f498 \U0001f49d \U0001f49f \U0001f49c \U0001f49b \U0001f49a \U0001f499"] isKindOfClass:NSString.class]) return nil; | |
| 959 | + if (![dict[@"$1.00"] isKindOfClass:NSString.class]) return nil; | |
| 960 | + if (![dict[@"1,0/0,0"] isKindOfClass:NSString.class]) return nil; | |
| 961 | + if (![dict[@"1 000.00"] isKindOfClass:NSString.class]) return nil; | |
| 962 | + if (![dict[@"1 000 000,00"] isKindOfClass:NSString.class]) return nil; | |
| 963 | + if (![dict[@"1'; DROP TABLE users-- 1"] isKindOfClass:NSString.class]) return nil; | |
| 964 | + if (![dict[@"1#IND"] isKindOfClass:NSString.class]) return nil; | |
| 965 | + if (![dict[@"1#INF"] isKindOfClass:NSString.class]) return nil; | |
| 966 | + if (![dict[@"\U0001d54b\U0001d559\U0001d556 \U0001d562\U0001d566\U0001d55a\U0001d554\U0001d55c \U0001d553\U0001d563\U0001d560\U0001d568\U0001d55f \U0001d557\U0001d560\U0001d569 \U0001d55b\U0001d566\U0001d55e\U0001d561\U0001d564 \U0001d560\U0001d567\U0001d556\U0001d563 \U0001d565\U0001d559\U0001d556 \U0001d55d\U0001d552\U0001d56b\U0001d56a \U0001d555\U0001d560\U0001d558"] isKindOfClass:NSString.class]) return nil; | |
| 967 | + if (![dict[@"-2147483648/-1"] isKindOfClass:NSString.class]) return nil; | |
| 968 | + if (![dict[@"2.2250738585072011e-308"] isKindOfClass:NSString.class]) return nil; | |
| 969 | + if (![dict[@"\U0001f60d"] isKindOfClass:NSString.class]) return nil; | |
| 970 | + if (![dict[@"# The next line may appear to be blank, mojibake, or dingbats in some viewers."] isKindOfClass:NSString.class]) return nil; | |
| 971 | + if (![dict[@"# The next line may appear to be blank or mojibake in some viewers."] isKindOfClass:NSString.class]) return nil; | |
| 972 | + if (![dict[@"# The next line may be flagged for \"trailing whitespace\" in some viewers."] isKindOfClass:NSString.class]) return nil; | |
| 973 | + if (![dict[@"<script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 974 | + if (![dict[@"123"] isKindOfClass:NSString.class]) return nil; | |
| 975 | + if (![dict[@"# This file unfortunately cannot express strings containing"] isKindOfClass:NSString.class]) return nil; | |
| 976 | + if (![dict[@"$(touch /tmp/blns.fail)"] isKindOfClass:NSString.class]) return nil; | |
| 977 | + if (![dict[@"() { _; } >_[$($())] { touch /tmp/blns.shellshock2.fail; }"] isKindOfClass:NSString.class]) return nil; | |
| 978 | + if (![dict[@"Tyson Gay"] isKindOfClass:NSString.class]) return nil; | |
| 979 | + if (![dict[@"#\tUnicode Symbols"] isKindOfClass:NSString.class]) return nil; | |
| 980 | + if (![dict[@"'`\"><\\x00script>javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 981 | + if (![dict[@"'`\"><\\x3Cscript>javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 982 | + if (![dict[@"åß∂ƒ©˙∆˚¬…æ"] isKindOfClass:NSString.class]) return nil; | |
| 983 | + if (![dict[@"˙ɐnbᴉlɐ ɐuƃɐɯ ǝɹolop ʇǝ ǝɹoqɐl ʇn ʇunpᴉpᴉɔuᴉ ɹodɯǝʇ poɯsnᴉǝ op pǝs 'ʇᴉlǝ ƃuᴉɔsᴉdᴉpɐ ɹnʇǝʇɔǝsuoɔ 'ʇǝɯɐ ʇᴉs ɹolop ɯnsdᴉ ɯǝɹo˥"] isKindOfClass:NSString.class]) return nil; | |
| 984 | + if (![dict[@"Ω≈ç√∫˜µ≤≥÷"] isKindOfClass:NSString.class]) return nil; | |
| 985 | + if (![dict[@"ヽ༼ຈل͜ຈ༽ノ ヽ༼ຈل͜ຈ༽ノ"] isKindOfClass:NSString.class]) return nil; | |
| 986 | + if (![dict[@"Ṱ̺̺̕o͞ ̷i̲̬͇̪͙n̝̗͕v̟̜̘̦͟o̶̙̰̠kè͚̮̺̪̹̱̤ ̖t̝͕̳̣̻̪͞h̼͓̲̦̳̘̲e͇̣̰̦̬͎ ̢̼̻̱̘h͚͎͙̜̣̲ͅi̦̲̣̰̤v̻͍e̺̭̳̪̰-m̢iͅn̖̺̞̲̯̰d̵̼̟͙̩̼̘̳ ̞̥̱̳̭r̛̗̘e͙p͠r̼̞̻̭̗e̺̠̣͟s̘͇̳͍̝͉e͉̥̯̞̲͚̬͜ǹ̬͎͎̟̖͇̤t͍̬̤͓̼̭͘ͅi̪̱n͠g̴͉ ͏͉ͅc̬̟h͡a̫̻̯͘o̫̟̖͍̙̝͉s̗̦̲.̨̹͈̣"] isKindOfClass:NSString.class]) return nil; | |
| 987 | + if (![dict[@"社會科學院語學研究所"] isKindOfClass:NSString.class]) return nil; | |
| 988 | + if (![dict[@"部落格"] isKindOfClass:NSString.class]) return nil; | |
| 989 | + if (![dict[@"사회과학원 어학연구소"] isKindOfClass:NSString.class]) return nil; | |
| 990 | + if (![dict[@"찦차를 타고 온 펲시맨과 쑛다리 똠방각하"] isKindOfClass:NSString.class]) return nil; | |
| 991 | + if (![dict[@"ﷺ"] isKindOfClass:NSString.class]) return nil; | |
| 992 | + if (![dict[@"__ロ(,_,*)"] isKindOfClass:NSString.class]) return nil; | |
| 993 | + [self setValuesForKeysWithDictionary:dict]; | |
| 994 | + } | |
| 995 | + return self; | |
| 996 | +} | |
| 997 | + | |
| 998 | +- (void)setValue:(nullable id)value forKey:(NSString *)key | |
| 999 | +{ | |
| 1000 | + id resolved = QTB.properties[key]; | |
| 1001 | + if (resolved) [super setValue:value forKey:resolved]; | |
| 1002 | +} | |
| 1003 | + | |
| 1004 | +- (void)setNilValueForKey:(NSString *)key | |
| 1005 | +{ | |
| 1006 | + id resolved = QTB.properties[key]; | |
| 1007 | + if (resolved) [super setValue:@(0) forKey:resolved]; | |
| 1008 | +} | |
| 1009 | + | |
| 1010 | +- (NSDictionary *)JSONDictionary | |
| 1011 | +{ | |
| 1012 | + id dict = [[self dictionaryWithValuesForKeys:QTB.properties.allValues] mutableCopy]; | |
| 1013 | + | |
| 1014 | + for (id jsonName in QTB.properties) { | |
| 1015 | + id propertyName = QTB.properties[jsonName]; | |
| 1016 | + if (![jsonName isEqualToString:propertyName]) { | |
| 1017 | + dict[jsonName] = dict[propertyName]; | |
| 1018 | + [dict removeObjectForKey:propertyName]; | |
| 1019 | + } | |
| 1020 | + } | |
| 1021 | + | |
| 1022 | + [dict addEntriesFromDictionary:@{ | |
| 1023 | + @"dontMakeAMap": _isDontMakeAMap ? @YES : @NO, | |
| 1024 | + }]; | |
| 1025 | + | |
| 1026 | + return dict; | |
| 1027 | +} | |
| 1028 | +@end | |
| 1029 | + | |
| 1030 | +@implementation QTC | |
| 1031 | ++ (NSDictionary<NSString *, NSString *> *)properties | |
| 1032 | +{ | |
| 1033 | + static NSDictionary<NSString *, NSString *> *properties; | |
| 1034 | + return properties = properties ? properties : @{ | |
| 1035 | + @"\U0002070e\U00020731\U00020779\U00020c53\U00020c78\U00020c96\U00020ccf": @"_1", | |
| 1036 | + @"A:": @"a", | |
| 1037 | + @"<a href=\"\\x00javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX00JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1038 | + @"<a href=\"\\x03javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX03JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1039 | + @"<a href=\"\\x06javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX06JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1040 | + @"<a href=\"\\x07javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX07JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1041 | + @"<a href=\"\\x0Bjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX0BjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1042 | + @"<a href=\"\\x12javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX12JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1043 | + @"<a href=\"\\x14javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX14JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1044 | + @"<a href=\"\\x15javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX15JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1045 | + @"<a href=\"\\x18javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX18JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1046 | + @"<a href=\"\\x1Bjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX1BjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1047 | + @"<a href=\"\\x1Cjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX1CjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1048 | + @"<a href=\"\\x20javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefX20JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1049 | + @"<a href=\"\\xE2\\x80\\x80javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X80JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1050 | + @"<a href=\"\\xE2\\x80\\x85javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X85JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1051 | + @"<a href=\"\\xE2\\x80\\x88javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X88JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1052 | + @"<a href=\"\\xE2\\x80\\x89javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X89JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1053 | + @"<a href=\"\\xE2\\x80\\x8Ajavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X80X8AjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1054 | + @"<a href=\"\\xE2\\x81\\x9Fjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE2X81X9FjavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1055 | + @"<a href=\"\\xE3\\x80\\x80javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>": @"aHrefXE3X80X80JavascriptJavascriptAlert1IDFuzzelement1TestA", | |
| 1056 | + @"ABC<div style=\"x:expression\\x00(javascript:alert(1)\">DEF": @"abcDivStyleXExpressionX00JavascriptAlert1DEF", | |
| 1057 | + @"ABC<div style=\"x:\\x00expression(javascript:alert(1)\">DEF": @"abcDivStyleXX00ExpressionJavascriptAlert1DEF", | |
| 1058 | + @"ABC<div style=\"x:\\x0Cexpression(javascript:alert(1)\">DEF": @"abcDivStyleXX0CexpressionJavascriptAlert1DEF", | |
| 1059 | + @"ABC<div style=\"x:\\xE2\\x80\\x81expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X81ExpressionJavascriptAlert1DEF", | |
| 1060 | + @"ABC<div style=\"x:\\xE2\\x80\\x86expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X86ExpressionJavascriptAlert1DEF", | |
| 1061 | + @"ABC<div style=\"x:\\xE2\\x80\\x88expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE2X80X88ExpressionJavascriptAlert1DEF", | |
| 1062 | + @"ABC<div style=\"x:\\xE3\\x80\\x80expression(javascript:alert(1)\">DEF": @"abcDivStyleXXE3X80X80ExpressionJavascriptAlert1DEF", | |
| 1063 | + @"ABC<div style=\"x:\\xEF\\xBB\\xBFexpression(javascript:alert(1)\">DEF": @"abcDivStyleXXEFXBBXBFexpressionJavascriptAlert1DEF", | |
| 1064 | + @"# and U+007F (DEL)": @"andU007FDEL", | |
| 1065 | + @"-": @"another", | |
| 1066 | + @"# ASCII punctuation. All of these characters may need to be escaped in some": @"asciiPunctuationAllOfTheseCharactersMayNeedToBeEscapedInSome", | |
| 1067 | + @"<BODY onload!#$%&()*~+-_.,:;?@[/|\\]^`=alert(\"XSS\")>": @"bodyOnloadAlertXSS", | |
| 1068 | + @"\"'\"'\"''''\"": @"c", | |
| 1069 | + @"-0.0": @"c00", | |
| 1070 | + @"0.0/0": @"c000", | |
| 1071 | + @"--1": @"c1", | |
| 1072 | + @"-1.00": @"c100", | |
| 1073 | + @"1,000.00": @"c100000", | |
| 1074 | + @"1,000,000.00": @"c100000000", | |
| 1075 | + @"1E+02": @"c1E02", | |
| 1076 | + @"><script>alert(123)</script>": @"cScriptAlert123Script", | |
| 1077 | + @"true": @"cTrue", | |
| 1078 | + @"CLOCK$": @"clock", | |
| 1079 | + @"COM2": @"com2", | |
| 1080 | + @"COM4": @"com4", | |
| 1081 | + @"Craig Cockburn, Software Specialist": @"craigCockburnSoftwareSpecialist", | |
| 1082 | + @"DCC SEND STARTKEYLOGGER 0 0 0": @"dccSendStartkeylogger000", | |
| 1083 | + @"#\tEmoji": @"emoji", | |
| 1084 | + @"\"\"": @"empty", | |
| 1085 | + @"evaluate": @"evaluate", | |
| 1086 | + @"<foo val=“bar” />": @"fooValBar", | |
| 1087 | + @"hasOwnProperty": @"hasOwnProperty", | |
| 1088 | + @"Horniman Museum": @"hornimanMuseum", | |
| 1089 | + @"http://www.cum.qc.ca/": @"httpWWWCumQcCA", | |
| 1090 | + @"<i onwheel=alert(1)> Scroll over me </i>": @"iOnwheelAlert1ScrollOverMeI", | |
| 1091 | + @"<img[a][b][c]src[d]=x[e]onerror=[f]\"alert(1)\">": @"imgABCSrcDXEOnerrorFAlert1", | |
| 1092 | + @"<IMG onmouseover=\"alert('xxs')\">": @"imgOnmouseoverAlertXxs", | |
| 1093 | + @"<IMG \"\"\"><SCRIPT>alert(\"XSS\")</SCRIPT>\">": @"imgSCRIPTAlertXSSSCRIPT", | |
| 1094 | + @"<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>": @"imgSRCJavascriptAlertStringFromCharCode888383", | |
| 1095 | + @"<IMG SRC=\"javascript:alert('XSS')\"": @"imgSRCJavascriptAlertXSS", | |
| 1096 | + @"<img src onerror /\" '\"= alt=javascript:alert(1)//\">": @"imgSrcOnerrorAltJavascriptAlert1", | |
| 1097 | + @"<img src\\x10=x onerror=\"javascript:alert(1)\">": @"imgSrcX10XOnerrorJavascriptAlert1", | |
| 1098 | + @"<img src\\x12=x onerror=\"javascript:alert(1)\">": @"imgSrcX12XOnerrorJavascriptAlert1", | |
| 1099 | + @"<img src\\x13=x onerror=\"javascript:alert(1)\">": @"imgSrcX13XOnerrorJavascriptAlert1", | |
| 1100 | + @"<img src\\x32=x onerror=\"javascript:alert(1)\">": @"imgSrcX32XOnerrorJavascriptAlert1", | |
| 1101 | + @"<img src\\x47=x onerror=\"javascript:alert(1)\">": @"imgSrcX47XOnerrorJavascriptAlert1", | |
| 1102 | + @"<img src=x onerror=alert(123) />": @"imgSrcXOnerrorAlert123", | |
| 1103 | + @"<img src=x onerror=\\x10\"javascript:alert(1)\">": @"imgSrcXOnerrorX10JavascriptAlert1", | |
| 1104 | + @"<img src=x onerror=\\x32\"javascript:alert(1)\">": @"imgSrcXOnerrorX32JavascriptAlert1", | |
| 1105 | + @"<img src=\"x` `<script>javascript:alert(1)</script>\"` `>": @"imgSrcXScriptJavascriptAlert1Script", | |
| 1106 | + @"`\"'><img src=xxx:x \\x09onerror=javascript:alert(1)>": @"imgSrcXxxXX09OnerrorJavascriptAlert1", | |
| 1107 | + @"`\"'><img src=xxx:x \\x20onerror=javascript:alert(1)>": @"imgSrcXxxXX20OnerrorJavascriptAlert1", | |
| 1108 | + @"`\"'><img src=xxx:x \\x22onerror=javascript:alert(1)>": @"imgSrcXxxXX22OnerrorJavascriptAlert1", | |
| 1109 | + @"`\"'><img src=xxx:x \\x27onerror=javascript:alert(1)>": @"imgSrcXxxXX27OnerrorJavascriptAlert1", | |
| 1110 | + @"<img\\x11src=x onerror=\"javascript:alert(1)\">": @"imgX11SrcXOnerrorJavascriptAlert1", | |
| 1111 | + @"<img \\x34src=x onerror=\"javascript:alert(1)\">": @"imgX34SrcXOnerrorJavascriptAlert1", | |
| 1112 | + @"<img\\x47src=x onerror=\"javascript:alert(1)\">": @"imgX47SrcXOnerrorJavascriptAlert1", | |
| 1113 | + @"Infinity": @"infinity", | |
| 1114 | + @"dontMakeAMap": @"isDontMakeAMap", | |
| 1115 | + @"JavaSCript:alert(123)": @"javaSCriptAlert123", | |
| 1116 | + @"LPT1": @"lpt1", | |
| 1117 | + @"<script>alert('123');</script>": @"ltScriptGtAlert3912339LtScriptGt", | |
| 1118 | + @"magna cum laude": @"magnaCumLaude", | |
| 1119 | + @"medieval erection of parapets": @"medievalErectionOfParapets", | |
| 1120 | + @"mocha": @"mocha", | |
| 1121 | + @"NaN": @"naN", | |
| 1122 | + @"# Non-whitespace C0 controls: U+0001 through U+0008, U+000E through U+001F,": @"nonWhitespaceC0ControlsU0001ThroughU0008U000EThroughU001F", | |
| 1123 | + @"NULL": @"null", | |
| 1124 | + @"%": @"one", | |
| 1125 | + @"0,,0": @"one00", | |
| 1126 | + @"1.000,00": @"one100000", | |
| 1127 | + @"1.000.000,00": @"one100000000", | |
| 1128 | + @"' onfocus=JaVaSCript:alert(123) autofocus": @"onfocusJaVaSCriptAlert123Autofocus", | |
| 1129 | + @"# or reused for internal delimiters on the theory that they should never": @"orReusedForInternalDelimitersOnTheTheoryThatTheyShouldNever", | |
| 1130 | + @"<plaintext>": @"plaintext", | |
| 1131 | + @"Powerلُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ冗": @"powerلُلُصّبُلُلصّبُررًॣॣH冗", | |
| 1132 | + @"#\tRight-To-Left Strings": @"rightToLeftStrings", | |
| 1133 | + @"Roses are \033[0;31mred\033[0m, violets are \033[0;34mblue. Hope you enjoy terminal hue": @"rosesAre031Mred0MVioletsAre034MblueHopeYouEnjoyTerminalHue", | |
| 1134 | + @"%*.*s": @"s", | |
| 1135 | + @"'><script>alert(123)</script>": @"scriptAlert123Script", | |
| 1136 | + @"'><script>alert(123);</script x='": @"scriptAlert123ScriptX", | |
| 1137 | + @"\"`'><script>-javascript:alert(1)</script>": @"scriptJavascriptAlert1Script", | |
| 1138 | + @"< / script >< script >alert(123)< / script >": @"scriptScriptAlert123Script", | |
| 1139 | + @"<script src=\"/\\%(jscript)s\"></script>": @"scriptSrcJscriptSScript", | |
| 1140 | + @"\"`'><script>\\x0Ajavascript:alert(1)</script>": @"scriptX0AjavascriptAlert1Script", | |
| 1141 | + @"\"`'><script>\\x0Bjavascript:alert(1)</script>": @"scriptX0BjavascriptAlert1Script", | |
| 1142 | + @"<script\\x0Ctype=\"text/javascript\">javascript:alert(1);</script>": @"scriptX0CtypeTextJavascriptJavascriptAlert1Script", | |
| 1143 | + @"\"`'><script>\\x20javascript:alert(1)</script>": @"scriptX20JavascriptAlert1Script", | |
| 1144 | + @"\"`'><script>\\x2Bjavascript:alert(1)</script>": @"scriptX2BjavascriptAlert1Script", | |
| 1145 | + @"<script\\x2Ftype=\"text/javascript\">javascript:alert(1);</script>": @"scriptX2FtypeTextJavascriptJavascriptAlert1Script", | |
| 1146 | + @"\"`'><script>\\x7Ejavascript:alert(1)</script>": @"scriptX7EjavascriptAlert1Script", | |
| 1147 | + @"\"`'><script>\\xE2\\x80\\x80javascript:alert(1)</script>": @"scriptXE2X80X80JavascriptAlert1Script", | |
| 1148 | + @"\"`'><script>\\xE2\\x80\\x82javascript:alert(1)</script>": @"scriptXE2X80X82JavascriptAlert1Script", | |
| 1149 | + @"\"`'><script>\\xE2\\x80\\x83javascript:alert(1)</script>": @"scriptXE2X80X83JavascriptAlert1Script", | |
| 1150 | + @"\"`'><script>\\xE2\\x80\\x84javascript:alert(1)</script>": @"scriptXE2X80X84JavascriptAlert1Script", | |
| 1151 | + @"\"`'><script>\\xE2\\x80\\x88javascript:alert(1)</script>": @"scriptXE2X80X88JavascriptAlert1Script", | |
| 1152 | + @"\"`'><script>\\xE2\\x80\\x8Bjavascript:alert(1)</script>": @"scriptXE2X80X8BjavascriptAlert1Script", | |
| 1153 | + @"\"`'><script>\\xEF\\xBF\\xAEjavascript:alert(1)</script>": @"scriptXEFXBFXAEjavascriptAlert1Script", | |
| 1154 | + @"\"`'><script>\\xEF\\xBF\\xBEjavascript:alert(1)</script>": @"scriptXEFXBFXBEjavascriptAlert1Script", | |
| 1155 | + @"Scunthorpe General Hospital": @"scunthorpeGeneralHospital", | |
| 1156 | + @"#\tServer Code Injection": @"serverCodeInjection", | |
| 1157 | + @"shitake mushrooms": @"shitakeMushrooms", | |
| 1158 | + @"''": @"some", | |
| 1159 | + @"0/0": @"some00", | |
| 1160 | + @"#\tSpecial Characters": @"specialCharacters", | |
| 1161 | + @"src=JaVaSCript:prompt(132)": @"srcJaVaSCriptPrompt132", | |
| 1162 | + @"#\tStrings which can be interpreted as numeric": @"stringsWhichCanBeInterpretedAsNumeric", | |
| 1163 | + @"#\tStrings which can cause a SQL injection if inputs are not sanitized": @"stringsWhichCanCauseASQLInjectionIfInputsAreNotSanitized", | |
| 1164 | + @"#\tStrings which can cause user to pull in files that should not be a part of a web server": @"stringsWhichCanCauseUserToPullInFilesThatShouldNotBeAPartOfAWebServer", | |
| 1165 | + @"#\tStrings which can cause user to run code on server as a privileged user (c.f. https://news.ycombinator.com/item?id=7665153)": @"stringsWhichCanCauseUserToRunCodeOnServerAsAPrivilegedUserCFHTTPSNewsYcombinatorCOMItemID7665153", | |
| 1166 | + @"#\tStrings which contain \"corrupted\" text. The corruption will not appear in non-HTML text, however. (via http://www.eeemo.net)": @"stringsWhichContainCorruptedTextTheCorruptionWillNotAppearInNonHTMLTextHoweverViaHTTPWWWEeemoNet", | |
| 1167 | + @"#\tStrings which contain unicode with an \"upsidedown\" effect (via http://www.upsidedowntext.com)": @"stringsWhichContainUnicodeWithAnUpsidedownEffectViaHTTPWWWUpsidedowntextCOM", | |
| 1168 | + @"#\tStrings which contain unicode with unusual properties (e.g. Right-to-left override) (c.f. http://www.unicode.org/charts/PDF/U2000.pdf)": @"stringsWhichContainUnicodeWithUnusualPropertiesEGRightToLeftOverrideCFHTTPWWWUnicodeOrgChartsPDFU2000PDF", | |
| 1169 | + @"#\tStrings which punish the fools who use cat/type on this file": @"stringsWhichPunishTheFoolsWhoUseCatTypeOnThisFile", | |
| 1170 | + @"<svg><script>123<1>alert(123)</script>": @"svgScript1231Alert123Script", | |
| 1171 | + @"System(\"ls -al /\")": @"systemLsAl", | |
| 1172 | + @"@{[system \"touch /tmp/blns.fail\"]}": @"systemTouchTmpBlnsFail", | |
| 1173 | + @"\u2029test\u2029": @"test", | |
| 1174 | + @"test\u2060test\u202b": @"testTest", | |
| 1175 | + @"\"''''\"'\"": @"the", | |
| 1176 | + @"+0.0": @"the00", | |
| 1177 | + @"0.0.0": @"the000", | |
| 1178 | + @"() { 0; }; touch /tmp/blns.shellshock1.fail;": @"the0TouchTmpBlnsShellshock1Fail", | |
| 1179 | + @"0xabad1dea": @"the0Xabad1Dea", | |
| 1180 | + @"0xffffffff": @"the0Xffffffff", | |
| 1181 | + @"\U0001f3f30\U0001f308️": @"the0️", | |
| 1182 | + @"0️⃣ 1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣ 8️⃣ 9️⃣ \U0001f51f": @"the0️1️2️3️4️5️6️7️8️9️", | |
| 1183 | + @"--": @"the1", | |
| 1184 | + @"\U0001d683\U0001d691\U0001d68e \U0001d69a\U0001d69e\U0001d692\U0001d68c\U0001d694 \U0001d68b\U0001d69b\U0001d698\U0001d6a0\U0001d697 \U0001d68f\U0001d698\U0001d6a1 \U0001d693\U0001d69e\U0001d696\U0001d699\U0001d69c \U0001d698\U0001d69f\U0001d68e\U0001d69b \U0001d69d\U0001d691\U0001d68e \U0001d695\U0001d68a\U0001d6a3\U0001d6a2 \U0001d68d\U0001d698\U0001d690": @"the10", | |
| 1185 | + @"-$1.00": @"the100", | |
| 1186 | + @"1 000,00": @"the100000", | |
| 1187 | + @"1'000'000,00": @"the100000000", | |
| 1188 | + @"\U0001f435 \U0001f648 \U0001f649 \U0001f64a": @"the11", | |
| 1189 | + @"-1/2": @"the12", | |
| 1190 | + @"\U0001f47e \U0001f647 \U0001f481 \U0001f645 \U0001f646 \U0001f64b \U0001f64e \U0001f64d": @"the13", | |
| 1191 | + @"-1E+02": @"the1E02", | |
| 1192 | + @"-1E2": @"the1E2", | |
| 1193 | + @"-1#IND": @"the1Ind", | |
| 1194 | + @".": @"the2", | |
| 1195 | + @"\\\\": @"the3", | |
| 1196 | + @"_": @"the4", | |
| 1197 | + @"⁰⁴⁵": @"the5", | |
| 1198 | + @"⅛⅜⅝⅞": @"the6", | |
| 1199 | + @"✋\U0001f3ff \U0001f4aa\U0001f3ff \U0001f450\U0001f3ff \U0001f64c\U0001f3ff \U0001f44f\U0001f3ff \U0001f64f\U0001f3ff": @"the7", | |
| 1200 | + @"・( ̄∀ ̄)・:*:": @"the8", | |
| 1201 | + @"\U0001d413\U0001d421\U0001d41e \U0001d42a\U0001d42e\U0001d422\U0001d41c\U0001d424 \U0001d41b\U0001d42b\U0001d428\U0001d430\U0001d427 \U0001d41f\U0001d428\U0001d431 \U0001d423\U0001d42e\U0001d426\U0001d429\U0001d42c \U0001d428\U0001d42f\U0001d41e\U0001d42b \U0001d42d\U0001d421\U0001d41e \U0001d425\U0001d41a\U0001d433\U0001d432 \U0001d41d\U0001d428\U0001d420": @"the9", | |
| 1202 | + @"-9223372036854775808/-1": @"the92233720368547758081", | |
| 1203 | + @"<script>alert(123)</script>": @"theScriptAlert123Script", | |
| 1204 | + @"١٢٣": @"the١٢٣", | |
| 1205 | + @"<title onpropertychange=javascript:alert(1)></title><title title=>": @"titleOnpropertychangeJavascriptAlert1TitleTitleTitle", | |
| 1206 | + @"# treated as whitespace in some contexts.": @"treatedAsWhitespaceInSomeContexts", | |
| 1207 | + @"#\tTrick Unicode": @"trickUnicode", | |
| 1208 | + @"undefined": @"undefined", | |
| 1209 | + @"# Unicode additional control characters: all of the characters with": @"unicodeAdditionalControlCharactersAllOfTheCharactersWith", | |
| 1210 | + @"#\tUnicode Subscript/Superscript/Accents": @"unicodeSubscriptSuperscriptAccents", | |
| 1211 | + @"#\tUnicode Upsidedown": @"unicodeUpsidedown", | |
| 1212 | + @"$USER": @"user", | |
| 1213 | + @"--version": @"version", | |
| 1214 | + @"# version 8.0.0), plus U+0009 (HT), U+000B (VT), U+000C (FF), U+0085 (NEL),": @"version800PlusU0009HTU000BVTU000CFFU0085NEL", | |
| 1215 | + @"# Whitespace: all of the characters with category Zs, Zl, or Zp (in Unicode": @"whitespaceAllOfTheCharactersWithCategoryZsZlOrZpInUnicode", | |
| 1216 | + @"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><!DOCTYPE foo [ <!ELEMENT foo ANY ><!ENTITY xxe SYSTEM \"file:///etc/passwd\" >]><foo>&xxe;</foo>": @"xmlVersion10EncodingISO88591DOCTYPEFooELEMENTFooANYENTITYXxeSYSTEMFileEtcPasswdFooXxeFoo", | |
| 1217 | + @"# XXE Injection (XML)": @"xxeInjectionXML", | |
| 1218 | + @"#\tZalgo Text": @"zalgoText", | |
| 1219 | + @"ZZ:": @"zz", | |
| 1220 | + @"ÅÍÎÏ˝ÓÔ\uf8ffÒÚÆ☃": @"åíîïÓôÒúæ", | |
| 1221 | + @",。・:*:・゜’( ☻ ω ☻ )。・:*:・゜’": @"ω", | |
| 1222 | + @"ЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя": @"ёђѓєѕіїјљњћќѝўџабвгдежзийклмнопрстуфхцчшщъыьэюЯабвгдежзийклмнопрстуфхцчшщъыьэюя", | |
| 1223 | + @"בְּרֵאשִׁית, בָּרָא אֱלֹהִים, אֵת הַשָּׁמַיִם, וְאֵת הָאָרֶץ": @"בְּרֵאשִׁיתבָּרָאאֱלֹהִיםאֵתהַשָּׁמַיִםוְאֵתהָאָרֶץ", | |
| 1224 | + @"مُنَاقَشَةُ سُبُلِ اِسْتِخْدَامِ اللُّغَةِ فِي النُّظُمِ الْقَائِمَةِ وَفِيم يَخُصَّ التَّطْبِيقَاتُ الْحاسُوبِيَّةُ، ": @"مُنَاقَشَةُسُبُلِاِسْتِخْدَامِاللُّغَةِفِيالنُّظُمِالْقَائِمَةِوَفِيميَخُصَّالتَّطْبِيقَاتُالْحاسُوبِيَّةُ", | |
| 1225 | + @"̗̺͖̹̯͓Ṯ̤͍̥͇͈h̲́e͏͓̼̗̙̼̣͔ ͇̜̱̠͓͍ͅN͕͠e̗̱z̘̝̜̺͙p̤̺̹͍̯͚e̠̻̠͜r̨̤͍̺̖͔̖̖d̠̟̭̬̝͟i̦͖̩͓͔̤a̠̗̬͉̙n͚͜ ̻̞̰͚ͅh̵͉i̳̞v̢͇ḙ͎͟-҉̭̩̼͔m̤̭̫i͕͇̝̦n̗͙ḍ̟ ̯̲͕͞ǫ̟̯̰̲͙̻̝f ̪̰̰̗̖̭̘͘c̦͍̲̞͍̩̙ḥ͚a̮͎̟̙͜ơ̩̹͎s̤.̝̝ ҉Z̡̖̜͖̰̣͉̜a͖̰͙̬͡l̲̫̳͍̩g̡̟̼̱͚̞̬ͅo̗͜.̟": @"ṯHENEZPERDIANHIVḘMINḌǪFCḤAƠSZALGO", | |
| 1226 | + @"┬─┬ノ( º _ ºノ)": @"ノº_ºノ", | |
| 1227 | + @"울란바토르": @"울란바토르", | |
| 1228 | + @"The quick brown fox jumps over the lazy dog": @"theQuickBrownFoxJumpsOverTheLazyDog", | |
| 1229 | + @"(ノಥ益ಥ)ノ\ufeff ┻━┻": @"ノಥ益ಥノ", | |
| 1230 | + }; | |
| 1231 | +} | |
| 1232 | + | |
| 1233 | ++ (instancetype)fromJSONDictionary:(NSDictionary *)dict | |
| 1234 | +{ | |
| 1235 | + return [dict isKindOfClass:NSDictionary.class] ? [[QTC alloc] initWithJSONDictionary:dict] : nil; | |
| 1236 | +} | |
| 1237 | + | |
| 1238 | +- (instancetype)initWithJSONDictionary:(NSDictionary *)dict | |
| 1239 | +{ | |
| 1240 | + if (self = [super init]) { | |
| 1241 | + if (![dict[@"\U0002070e\U00020731\U00020779\U00020c53\U00020c78\U00020c96\U00020ccf"] isKindOfClass:NSString.class]) return nil; | |
| 1242 | + if (![dict[@"A:"] isKindOfClass:NSString.class]) return nil; | |
| 1243 | + if (![dict[@"<a href=\"\\x00javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1244 | + if (![dict[@"<a href=\"\\x03javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1245 | + if (![dict[@"<a href=\"\\x06javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1246 | + if (![dict[@"<a href=\"\\x07javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1247 | + if (![dict[@"<a href=\"\\x0Bjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1248 | + if (![dict[@"<a href=\"\\x12javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1249 | + if (![dict[@"<a href=\"\\x14javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1250 | + if (![dict[@"<a href=\"\\x15javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1251 | + if (![dict[@"<a href=\"\\x18javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1252 | + if (![dict[@"<a href=\"\\x1Bjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1253 | + if (![dict[@"<a href=\"\\x1Cjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1254 | + if (![dict[@"<a href=\"\\x20javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1255 | + if (![dict[@"<a href=\"\\xE2\\x80\\x80javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1256 | + if (![dict[@"<a href=\"\\xE2\\x80\\x85javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1257 | + if (![dict[@"<a href=\"\\xE2\\x80\\x88javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1258 | + if (![dict[@"<a href=\"\\xE2\\x80\\x89javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1259 | + if (![dict[@"<a href=\"\\xE2\\x80\\x8Ajavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1260 | + if (![dict[@"<a href=\"\\xE2\\x81\\x9Fjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1261 | + if (![dict[@"<a href=\"\\xE3\\x80\\x80javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>"] isKindOfClass:NSString.class]) return nil; | |
| 1262 | + if (![dict[@"ABC<div style=\"x:expression\\x00(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 1263 | + if (![dict[@"ABC<div style=\"x:\\x00expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 1264 | + if (![dict[@"ABC<div style=\"x:\\x0Cexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 1265 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x81expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 1266 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x86expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 1267 | + if (![dict[@"ABC<div style=\"x:\\xE2\\x80\\x88expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 1268 | + if (![dict[@"ABC<div style=\"x:\\xE3\\x80\\x80expression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 1269 | + if (![dict[@"ABC<div style=\"x:\\xEF\\xBB\\xBFexpression(javascript:alert(1)\">DEF"] isKindOfClass:NSString.class]) return nil; | |
| 1270 | + if (![dict[@"# and U+007F (DEL)"] isKindOfClass:NSString.class]) return nil; | |
| 1271 | + if (![dict[@"-"] isKindOfClass:NSString.class]) return nil; | |
| 1272 | + if (![dict[@"# ASCII punctuation. All of these characters may need to be escaped in some"] isKindOfClass:NSString.class]) return nil; | |
| 1273 | + if (![dict[@"<BODY onload!#$%&()*~+-_.,:;?@[/|\\]^`=alert(\"XSS\")>"] isKindOfClass:NSString.class]) return nil; | |
| 1274 | + if (![dict[@"\"'\"'\"''''\""] isKindOfClass:NSString.class]) return nil; | |
| 1275 | + if (![dict[@"-0.0"] isKindOfClass:NSString.class]) return nil; | |
| 1276 | + if (![dict[@"0.0/0"] isKindOfClass:NSString.class]) return nil; | |
| 1277 | + if (![dict[@"--1"] isKindOfClass:NSString.class]) return nil; | |
| 1278 | + if (![dict[@"-1.00"] isKindOfClass:NSString.class]) return nil; | |
| 1279 | + if (![dict[@"1,000.00"] isKindOfClass:NSString.class]) return nil; | |
| 1280 | + if (![dict[@"1,000,000.00"] isKindOfClass:NSString.class]) return nil; | |
| 1281 | + if (![dict[@"1E+02"] isKindOfClass:NSString.class]) return nil; | |
| 1282 | + if (![dict[@"><script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1283 | + if (![dict[@"true"] isKindOfClass:NSString.class]) return nil; | |
| 1284 | + if (![dict[@"CLOCK$"] isKindOfClass:NSString.class]) return nil; | |
| 1285 | + if (![dict[@"COM2"] isKindOfClass:NSString.class]) return nil; | |
| 1286 | + if (![dict[@"COM4"] isKindOfClass:NSString.class]) return nil; | |
| 1287 | + if (![dict[@"Craig Cockburn, Software Specialist"] isKindOfClass:NSString.class]) return nil; | |
| 1288 | + if (![dict[@"DCC SEND STARTKEYLOGGER 0 0 0"] isKindOfClass:NSString.class]) return nil; | |
| 1289 | + if (![dict[@"#\tEmoji"] isKindOfClass:NSString.class]) return nil; | |
| 1290 | + if (![dict[@"\"\""] isKindOfClass:NSString.class]) return nil; | |
| 1291 | + if (![dict[@"evaluate"] isKindOfClass:NSString.class]) return nil; | |
| 1292 | + if (![dict[@"<foo val=“bar” />"] isKindOfClass:NSString.class]) return nil; | |
| 1293 | + if (![dict[@"hasOwnProperty"] isKindOfClass:NSString.class]) return nil; | |
| 1294 | + if (![dict[@"Horniman Museum"] isKindOfClass:NSString.class]) return nil; | |
| 1295 | + if (![dict[@"http://www.cum.qc.ca/"] isKindOfClass:NSString.class]) return nil; | |
| 1296 | + if (![dict[@"<i onwheel=alert(1)> Scroll over me </i>"] isKindOfClass:NSString.class]) return nil; | |
| 1297 | + if (![dict[@"<img[a][b][c]src[d]=x[e]onerror=[f]\"alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1298 | + if (![dict[@"<IMG onmouseover=\"alert('xxs')\">"] isKindOfClass:NSString.class]) return nil; | |
| 1299 | + if (![dict[@"<IMG \"\"\"><SCRIPT>alert(\"XSS\")</SCRIPT>\">"] isKindOfClass:NSString.class]) return nil; | |
| 1300 | + if (![dict[@"<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>"] isKindOfClass:NSString.class]) return nil; | |
| 1301 | + if (![dict[@"<IMG SRC=\"javascript:alert('XSS')\""] isKindOfClass:NSString.class]) return nil; | |
| 1302 | + if (![dict[@"<img src onerror /\" '\"= alt=javascript:alert(1)//\">"] isKindOfClass:NSString.class]) return nil; | |
| 1303 | + if (![dict[@"<img src\\x10=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1304 | + if (![dict[@"<img src\\x12=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1305 | + if (![dict[@"<img src\\x13=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1306 | + if (![dict[@"<img src\\x32=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1307 | + if (![dict[@"<img src\\x47=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1308 | + if (![dict[@"<img src=x onerror=alert(123) />"] isKindOfClass:NSString.class]) return nil; | |
| 1309 | + if (![dict[@"<img src=x onerror=\\x10\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1310 | + if (![dict[@"<img src=x onerror=\\x32\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1311 | + if (![dict[@"<img src=\"x` `<script>javascript:alert(1)</script>\"` `>"] isKindOfClass:NSString.class]) return nil; | |
| 1312 | + if (![dict[@"`\"'><img src=xxx:x \\x09onerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil; | |
| 1313 | + if (![dict[@"`\"'><img src=xxx:x \\x20onerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil; | |
| 1314 | + if (![dict[@"`\"'><img src=xxx:x \\x22onerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil; | |
| 1315 | + if (![dict[@"`\"'><img src=xxx:x \\x27onerror=javascript:alert(1)>"] isKindOfClass:NSString.class]) return nil; | |
| 1316 | + if (![dict[@"<img\\x11src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1317 | + if (![dict[@"<img \\x34src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1318 | + if (![dict[@"<img\\x47src=x onerror=\"javascript:alert(1)\">"] isKindOfClass:NSString.class]) return nil; | |
| 1319 | + if (![dict[@"Infinity"] isKindOfClass:NSString.class]) return nil; | |
| 1320 | + if (![dict[@"dontMakeAMap"] isKindOfClass:NSNumber.class]) return nil; | |
| 1321 | + if (![dict[@"JavaSCript:alert(123)"] isKindOfClass:NSString.class]) return nil; | |
| 1322 | + if (![dict[@"LPT1"] isKindOfClass:NSString.class]) return nil; | |
| 1323 | + if (![dict[@"<script>alert('123');</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1324 | + if (![dict[@"magna cum laude"] isKindOfClass:NSString.class]) return nil; | |
| 1325 | + if (![dict[@"medieval erection of parapets"] isKindOfClass:NSString.class]) return nil; | |
| 1326 | + if (![dict[@"mocha"] isKindOfClass:NSString.class]) return nil; | |
| 1327 | + if (![dict[@"NaN"] isKindOfClass:NSString.class]) return nil; | |
| 1328 | + if (![dict[@"# Non-whitespace C0 controls: U+0001 through U+0008, U+000E through U+001F,"] isKindOfClass:NSString.class]) return nil; | |
| 1329 | + if (![dict[@"NULL"] isKindOfClass:NSString.class]) return nil; | |
| 1330 | + if (![dict[@"%"] isKindOfClass:NSString.class]) return nil; | |
| 1331 | + if (![dict[@"0,,0"] isKindOfClass:NSString.class]) return nil; | |
| 1332 | + if (![dict[@"1.000,00"] isKindOfClass:NSString.class]) return nil; | |
| 1333 | + if (![dict[@"1.000.000,00"] isKindOfClass:NSString.class]) return nil; | |
| 1334 | + if (![dict[@"' onfocus=JaVaSCript:alert(123) autofocus"] isKindOfClass:NSString.class]) return nil; | |
| 1335 | + if (![dict[@"# or reused for internal delimiters on the theory that they should never"] isKindOfClass:NSString.class]) return nil; | |
| 1336 | + if (![dict[@"<plaintext>"] isKindOfClass:NSString.class]) return nil; | |
| 1337 | + if (![dict[@"Powerلُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ冗"] isKindOfClass:NSString.class]) return nil; | |
| 1338 | + if (![dict[@"#\tRight-To-Left Strings"] isKindOfClass:NSString.class]) return nil; | |
| 1339 | + if (![dict[@"Roses are \033[0;31mred\033[0m, violets are \033[0;34mblue. Hope you enjoy terminal hue"] isKindOfClass:NSString.class]) return nil; | |
| 1340 | + if (![dict[@"%*.*s"] isKindOfClass:NSString.class]) return nil; | |
| 1341 | + if (![dict[@"'><script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1342 | + if (![dict[@"'><script>alert(123);</script x='"] isKindOfClass:NSString.class]) return nil; | |
| 1343 | + if (![dict[@"\"`'><script>-javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1344 | + if (![dict[@"< / script >< script >alert(123)< / script >"] isKindOfClass:NSString.class]) return nil; | |
| 1345 | + if (![dict[@"<script src=\"/\\%(jscript)s\"></script>"] isKindOfClass:NSString.class]) return nil; | |
| 1346 | + if (![dict[@"\"`'><script>\\x0Ajavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1347 | + if (![dict[@"\"`'><script>\\x0Bjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1348 | + if (![dict[@"<script\\x0Ctype=\"text/javascript\">javascript:alert(1);</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1349 | + if (![dict[@"\"`'><script>\\x20javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1350 | + if (![dict[@"\"`'><script>\\x2Bjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1351 | + if (![dict[@"<script\\x2Ftype=\"text/javascript\">javascript:alert(1);</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1352 | + if (![dict[@"\"`'><script>\\x7Ejavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1353 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x80javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1354 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x82javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1355 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x83javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1356 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x84javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1357 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x88javascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1358 | + if (![dict[@"\"`'><script>\\xE2\\x80\\x8Bjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1359 | + if (![dict[@"\"`'><script>\\xEF\\xBF\\xAEjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1360 | + if (![dict[@"\"`'><script>\\xEF\\xBF\\xBEjavascript:alert(1)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1361 | + if (![dict[@"Scunthorpe General Hospital"] isKindOfClass:NSString.class]) return nil; | |
| 1362 | + if (![dict[@"#\tServer Code Injection"] isKindOfClass:NSString.class]) return nil; | |
| 1363 | + if (![dict[@"shitake mushrooms"] isKindOfClass:NSString.class]) return nil; | |
| 1364 | + if (![dict[@"''"] isKindOfClass:NSString.class]) return nil; | |
| 1365 | + if (![dict[@"0/0"] isKindOfClass:NSString.class]) return nil; | |
| 1366 | + if (![dict[@"#\tSpecial Characters"] isKindOfClass:NSString.class]) return nil; | |
| 1367 | + if (![dict[@"src=JaVaSCript:prompt(132)"] isKindOfClass:NSString.class]) return nil; | |
| 1368 | + if (![dict[@"#\tStrings which can be interpreted as numeric"] isKindOfClass:NSString.class]) return nil; | |
| 1369 | + if (![dict[@"#\tStrings which can cause a SQL injection if inputs are not sanitized"] isKindOfClass:NSString.class]) return nil; | |
| 1370 | + if (![dict[@"#\tStrings which can cause user to pull in files that should not be a part of a web server"] isKindOfClass:NSString.class]) return nil; | |
| 1371 | + if (![dict[@"#\tStrings which can cause user to run code on server as a privileged user (c.f. https://news.ycombinator.com/item?id=7665153)"] isKindOfClass:NSString.class]) return nil; | |
| 1372 | + if (![dict[@"#\tStrings which contain \"corrupted\" text. The corruption will not appear in non-HTML text, however. (via http://www.eeemo.net)"] isKindOfClass:NSString.class]) return nil; | |
| 1373 | + if (![dict[@"#\tStrings which contain unicode with an \"upsidedown\" effect (via http://www.upsidedowntext.com)"] isKindOfClass:NSString.class]) return nil; | |
| 1374 | + if (![dict[@"#\tStrings which contain unicode with unusual properties (e.g. Right-to-left override) (c.f. http://www.unicode.org/charts/PDF/U2000.pdf)"] isKindOfClass:NSString.class]) return nil; | |
| 1375 | + if (![dict[@"#\tStrings which punish the fools who use cat/type on this file"] isKindOfClass:NSString.class]) return nil; | |
| 1376 | + if (![dict[@"<svg><script>123<1>alert(123)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1377 | + if (![dict[@"System(\"ls -al /\")"] isKindOfClass:NSString.class]) return nil; | |
| 1378 | + if (![dict[@"@{[system \"touch /tmp/blns.fail\"]}"] isKindOfClass:NSString.class]) return nil; | |
| 1379 | + if (![dict[@"\u2029test\u2029"] isKindOfClass:NSString.class]) return nil; | |
| 1380 | + if (![dict[@"test\u2060test\u202b"] isKindOfClass:NSString.class]) return nil; | |
| 1381 | + if (![dict[@"\"''''\"'\""] isKindOfClass:NSString.class]) return nil; | |
| 1382 | + if (![dict[@"+0.0"] isKindOfClass:NSString.class]) return nil; | |
| 1383 | + if (![dict[@"0.0.0"] isKindOfClass:NSString.class]) return nil; | |
| 1384 | + if (![dict[@"() { 0; }; touch /tmp/blns.shellshock1.fail;"] isKindOfClass:NSString.class]) return nil; | |
| 1385 | + if (![dict[@"0xabad1dea"] isKindOfClass:NSString.class]) return nil; | |
| 1386 | + if (![dict[@"0xffffffff"] isKindOfClass:NSString.class]) return nil; | |
| 1387 | + if (![dict[@"\U0001f3f30\U0001f308️"] isKindOfClass:NSString.class]) return nil; | |
| 1388 | + if (![dict[@"0️⃣ 1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣ 8️⃣ 9️⃣ \U0001f51f"] isKindOfClass:NSString.class]) return nil; | |
| 1389 | + if (![dict[@"--"] isKindOfClass:NSString.class]) return nil; | |
| 1390 | + if (![dict[@"\U0001d683\U0001d691\U0001d68e \U0001d69a\U0001d69e\U0001d692\U0001d68c\U0001d694 \U0001d68b\U0001d69b\U0001d698\U0001d6a0\U0001d697 \U0001d68f\U0001d698\U0001d6a1 \U0001d693\U0001d69e\U0001d696\U0001d699\U0001d69c \U0001d698\U0001d69f\U0001d68e\U0001d69b \U0001d69d\U0001d691\U0001d68e \U0001d695\U0001d68a\U0001d6a3\U0001d6a2 \U0001d68d\U0001d698\U0001d690"] isKindOfClass:NSString.class]) return nil; | |
| 1391 | + if (![dict[@"-$1.00"] isKindOfClass:NSString.class]) return nil; | |
| 1392 | + if (![dict[@"1 000,00"] isKindOfClass:NSString.class]) return nil; | |
| 1393 | + if (![dict[@"1'000'000,00"] isKindOfClass:NSString.class]) return nil; | |
| 1394 | + if (![dict[@"\U0001f435 \U0001f648 \U0001f649 \U0001f64a"] isKindOfClass:NSString.class]) return nil; | |
| 1395 | + if (![dict[@"-1/2"] isKindOfClass:NSString.class]) return nil; | |
| 1396 | + if (![dict[@"\U0001f47e \U0001f647 \U0001f481 \U0001f645 \U0001f646 \U0001f64b \U0001f64e \U0001f64d"] isKindOfClass:NSString.class]) return nil; | |
| 1397 | + if (![dict[@"-1E+02"] isKindOfClass:NSString.class]) return nil; | |
| 1398 | + if (![dict[@"-1E2"] isKindOfClass:NSString.class]) return nil; | |
| 1399 | + if (![dict[@"-1#IND"] isKindOfClass:NSString.class]) return nil; | |
| 1400 | + if (![dict[@"."] isKindOfClass:NSString.class]) return nil; | |
| 1401 | + if (![dict[@"\\\\"] isKindOfClass:NSString.class]) return nil; | |
| 1402 | + if (![dict[@"_"] isKindOfClass:NSString.class]) return nil; | |
| 1403 | + if (![dict[@"⁰⁴⁵"] isKindOfClass:NSString.class]) return nil; | |
| 1404 | + if (![dict[@"⅛⅜⅝⅞"] isKindOfClass:NSString.class]) return nil; | |
| 1405 | + if (![dict[@"✋\U0001f3ff \U0001f4aa\U0001f3ff \U0001f450\U0001f3ff \U0001f64c\U0001f3ff \U0001f44f\U0001f3ff \U0001f64f\U0001f3ff"] isKindOfClass:NSString.class]) return nil; | |
| 1406 | + if (![dict[@"・( ̄∀ ̄)・:*:"] isKindOfClass:NSString.class]) return nil; | |
| 1407 | + if (![dict[@"\U0001d413\U0001d421\U0001d41e \U0001d42a\U0001d42e\U0001d422\U0001d41c\U0001d424 \U0001d41b\U0001d42b\U0001d428\U0001d430\U0001d427 \U0001d41f\U0001d428\U0001d431 \U0001d423\U0001d42e\U0001d426\U0001d429\U0001d42c \U0001d428\U0001d42f\U0001d41e\U0001d42b \U0001d42d\U0001d421\U0001d41e \U0001d425\U0001d41a\U0001d433\U0001d432 \U0001d41d\U0001d428\U0001d420"] isKindOfClass:NSString.class]) return nil; | |
| 1408 | + if (![dict[@"-9223372036854775808/-1"] isKindOfClass:NSString.class]) return nil; | |
| 1409 | + if (![dict[@"<script>alert(123)</script>"] isKindOfClass:NSString.class]) return nil; | |
| 1410 | + if (![dict[@"١٢٣"] isKindOfClass:NSString.class]) return nil; | |
| 1411 | + if (![dict[@"<title onpropertychange=javascript:alert(1)></title><title title=>"] isKindOfClass:NSString.class]) return nil; | |
| 1412 | + if (![dict[@"# treated as whitespace in some contexts."] isKindOfClass:NSString.class]) return nil; | |
| 1413 | + if (![dict[@"#\tTrick Unicode"] isKindOfClass:NSString.class]) return nil; | |
| 1414 | + if (![dict[@"undefined"] isKindOfClass:NSString.class]) return nil; | |
| 1415 | + if (![dict[@"# Unicode additional control characters: all of the characters with"] isKindOfClass:NSString.class]) return nil; | |
| 1416 | + if (![dict[@"#\tUnicode Subscript/Superscript/Accents"] isKindOfClass:NSString.class]) return nil; | |
| 1417 | + if (![dict[@"#\tUnicode Upsidedown"] isKindOfClass:NSString.class]) return nil; | |
| 1418 | + if (![dict[@"$USER"] isKindOfClass:NSString.class]) return nil; | |
| 1419 | + if (![dict[@"--version"] isKindOfClass:NSString.class]) return nil; | |
| 1420 | + if (![dict[@"# version 8.0.0), plus U+0009 (HT), U+000B (VT), U+000C (FF), U+0085 (NEL),"] isKindOfClass:NSString.class]) return nil; | |
| 1421 | + if (![dict[@"# Whitespace: all of the characters with category Zs, Zl, or Zp (in Unicode"] isKindOfClass:NSString.class]) return nil; | |
| 1422 | + if (![dict[@"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><!DOCTYPE foo [ <!ELEMENT foo ANY ><!ENTITY xxe SYSTEM \"file:///etc/passwd\" >]><foo>&xxe;</foo>"] isKindOfClass:NSString.class]) return nil; | |
| 1423 | + if (![dict[@"# XXE Injection (XML)"] isKindOfClass:NSString.class]) return nil; | |
| 1424 | + if (![dict[@"#\tZalgo Text"] isKindOfClass:NSString.class]) return nil; | |
| 1425 | + if (![dict[@"ZZ:"] isKindOfClass:NSString.class]) return nil; | |
| 1426 | + if (![dict[@"ÅÍÎÏ˝ÓÔ\uf8ffÒÚÆ☃"] isKindOfClass:NSString.class]) return nil; | |
| 1427 | + if (![dict[@",。・:*:・゜’( ☻ ω ☻ )。・:*:・゜’"] isKindOfClass:NSString.class]) return nil; | |
| 1428 | + if (![dict[@"ЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"] isKindOfClass:NSString.class]) return nil; | |
| 1429 | + if (![dict[@"בְּרֵאשִׁית, בָּרָא אֱלֹהִים, אֵת הַשָּׁמַיִם, וְאֵת הָאָרֶץ"] isKindOfClass:NSString.class]) return nil; | |
| 1430 | + if (![dict[@"مُنَاقَشَةُ سُبُلِ اِسْتِخْدَامِ اللُّغَةِ فِي النُّظُمِ الْقَائِمَةِ وَفِيم يَخُصَّ التَّطْبِيقَاتُ الْحاسُوبِيَّةُ، "] isKindOfClass:NSString.class]) return nil; | |
| 1431 | + if (![dict[@"̗̺͖̹̯͓Ṯ̤͍̥͇͈h̲́e͏͓̼̗̙̼̣͔ ͇̜̱̠͓͍ͅN͕͠e̗̱z̘̝̜̺͙p̤̺̹͍̯͚e̠̻̠͜r̨̤͍̺̖͔̖̖d̠̟̭̬̝͟i̦͖̩͓͔̤a̠̗̬͉̙n͚͜ ̻̞̰͚ͅh̵͉i̳̞v̢͇ḙ͎͟-҉̭̩̼͔m̤̭̫i͕͇̝̦n̗͙ḍ̟ ̯̲͕͞ǫ̟̯̰̲͙̻̝f ̪̰̰̗̖̭̘͘c̦͍̲̞͍̩̙ḥ͚a̮͎̟̙͜ơ̩̹͎s̤.̝̝ ҉Z̡̖̜͖̰̣͉̜a͖̰͙̬͡l̲̫̳͍̩g̡̟̼̱͚̞̬ͅo̗͜.̟"] isKindOfClass:NSString.class]) return nil; | |
| 1432 | + if (![dict[@"┬─┬ノ( º _ ºノ)"] isKindOfClass:NSString.class]) return nil; | |
| 1433 | + if (![dict[@"울란바토르"] isKindOfClass:NSString.class]) return nil; | |
| 1434 | + if (![dict[@"The quick brown fox jumps over the lazy dog"] isKindOfClass:NSString.class]) return nil; | |
| 1435 | + if (![dict[@"(ノಥ益ಥ)ノ\ufeff ┻━┻"] isKindOfClass:NSString.class]) return nil; | |
| 1436 | + [self setValuesForKeysWithDictionary:dict]; | |
| 1437 | + } | |
| 1438 | + return self; | |
| 1439 | +} | |
| 1440 | + | |
| 1441 | +- (void)setValue:(nullable id)value forKey:(NSString *)key | |
| 1442 | +{ | |
| 1443 | + id resolved = QTC.properties[key]; | |
| 1444 | + if (resolved) [super setValue:value forKey:resolved]; | |
| 1445 | +} | |
| 1446 | + | |
| 1447 | +- (void)setNilValueForKey:(NSString *)key | |
| 1448 | +{ | |
| 1449 | + id resolved = QTC.properties[key]; | |
| 1450 | + if (resolved) [super setValue:@(0) forKey:resolved]; | |
| 1451 | +} | |
| 1452 | + | |
| 1453 | +- (NSDictionary *)JSONDictionary | |
| 1454 | +{ | |
| 1455 | + id dict = [[self dictionaryWithValuesForKeys:QTC.properties.allValues] mutableCopy]; | |
| 1456 | + | |
| 1457 | + for (id jsonName in QTC.properties) { | |
| 1458 | + id propertyName = QTC.properties[jsonName]; | |
| 1459 | + if (![jsonName isEqualToString:propertyName]) { | |
| 1460 | + dict[jsonName] = dict[propertyName]; | |
| 1461 | + [dict removeObjectForKey:propertyName]; | |
| 1462 | + } | |
| 1463 | + } | |
| 1464 | + | |
| 1465 | + [dict addEntriesFromDictionary:@{ | |
| 1466 | + @"dontMakeAMap": _isDontMakeAMap ? @YES : @NO, | |
| 1467 | + }]; | |
| 1468 | + | |
| 1469 | + return dict; | |
| 1470 | +} | |
| 1471 | +@end | |
| 1472 | + | |
| 1473 | +NS_ASSUME_NONNULL_END |
No generated files match these filters.