From 070169ad6de6d41d1fdaec97798362e662b0ab6d Mon Sep 17 00:00:00 2001 From: Nathanwoodburn Date: Mon, 30 Aug 2021 15:11:06 +1000 Subject: [PATCH] Revert "Astra Security" This reverts commit 9f437f9588b814208db6b2fbaaa88d5180a95112. --- .gitignore | 49 - .gitlab/issue_templates/Bug.md | 26 - .gitlab/issue_templates/Feature.md | 13 - .gitlab/merge_request_templates/Bugfix.md | 32 - .../DevelopToMaster.md | 35 - .gitlab/merge_request_templates/Feature.md | 32 - .gitlab/merge_request_templates/Hotfix.md | 32 - Astra.php | 419 -- ak.php | 74 - api.php | 417 -- astra-inc.php | 16 - blackhole.php | 12 - block-page.php | 459 -- czar-89FC3CFA43E356C42382A941A99E4386.html | 1 - gk.php | 13 - install-astra.php | 735 --- libraries/API_connect.php | 292 - libraries/Astra_country.php | 45 - libraries/Astra_ip.php | 61 - libraries/Astra_setup.php | 150 - libraries/Bad_bots.php | 108 - libraries/Config_file.php | 18 - libraries/Config_options.php | 84 - libraries/Crypto.php | 71 - libraries/PHPIDS.php | 276 - libraries/SQLite_db.php | 1289 ---- libraries/Token_bucket.php | 76 - libraries/Update_DB.php | 111 - libraries/Update_config.php | 91 - libraries/Updater.php | 235 - libraries/Virtual_patches.php | 67 - libraries/browser.php | 1730 ------ libraries/index.html | 10 - libraries/plugins/IDS/.htaccess | 5 - libraries/plugins/IDS/Caching/Apc.php | 151 - libraries/plugins/IDS/Caching/Database.php | 291 - libraries/plugins/IDS/Caching/Factory.php | 94 - libraries/plugins/IDS/Caching/File.php | 187 - libraries/plugins/IDS/Caching/Interface.php | 73 - libraries/plugins/IDS/Caching/Memcached.php | 195 - libraries/plugins/IDS/Caching/Session.php | 146 - libraries/plugins/IDS/Config/Config.ini.php | 89 - libraries/plugins/IDS/Converter.php | 750 --- libraries/plugins/IDS/Event.php | 235 - libraries/plugins/IDS/Filter.php | 179 - libraries/plugins/IDS/Filter/Storage.php | 381 -- libraries/plugins/IDS/Init.php | 240 - libraries/plugins/IDS/Ips.php | 224 - libraries/plugins/IDS/LICENSE.txt | 165 - libraries/plugins/IDS/Log/Api.php | 229 - libraries/plugins/IDS/Log/Composite.php | 136 - libraries/plugins/IDS/Log/Database.php | 300 - libraries/plugins/IDS/Log/Email.php | 400 -- libraries/plugins/IDS/Log/File.php | 229 - libraries/plugins/IDS/Log/Interface.php | 65 - libraries/plugins/IDS/Monitor.php | 778 --- libraries/plugins/IDS/Report.php | 341 - libraries/plugins/IDS/Version.php | 49 - libraries/plugins/IDS/default_filter.json | 1 - libraries/plugins/IDS/default_filter.xml | 930 --- libraries/plugins/IDS/default_filter_orig.xml | 798 --- libraries/plugins/IDS/tmp/bad_bots.txt | 1 - libraries/plugins/IDS/tmp/cookie_ips.txt | 2 - libraries/plugins/IDS/tmp/custom_rules.txt | 1 - libraries/plugins/IDS/tmp/ips.txt | 2 - libraries/plugins/IDS/tmp/phpids_log.txt | 804 --- .../htmlpurifier/HTMLPurifier.auto.php | 11 - .../htmlpurifier/HTMLPurifier.autoload.php | 26 - .../htmlpurifier/HTMLPurifier.func.php | 23 - .../htmlpurifier/HTMLPurifier.includes.php | 214 - .../htmlpurifier/HTMLPurifier.kses.php | 30 - .../htmlpurifier/HTMLPurifier.path.php | 11 - .../IDS/vendors/htmlpurifier/HTMLPurifier.php | 237 - .../HTMLPurifier.safe-includes.php | 208 - .../HTMLPurifier/AttrCollections.php | 128 - .../htmlpurifier/HTMLPurifier/AttrDef.php | 123 - .../htmlpurifier/HTMLPurifier/AttrDef/CSS.php | 87 - .../HTMLPurifier/AttrDef/CSS/AlphaValue.php | 21 - .../HTMLPurifier/AttrDef/CSS/Background.php | 87 - .../AttrDef/CSS/BackgroundPosition.php | 133 - .../HTMLPurifier/AttrDef/CSS/Border.php | 43 - .../HTMLPurifier/AttrDef/CSS/Color.php | 78 - .../HTMLPurifier/AttrDef/CSS/Composite.php | 38 - .../AttrDef/CSS/DenyElementDecorator.php | 28 - .../HTMLPurifier/AttrDef/CSS/Filter.php | 54 - .../HTMLPurifier/AttrDef/CSS/Font.php | 149 - .../HTMLPurifier/AttrDef/CSS/FontFamily.php | 197 - .../AttrDef/CSS/ImportantDecorator.php | 40 - .../HTMLPurifier/AttrDef/CSS/Length.php | 47 - .../HTMLPurifier/AttrDef/CSS/ListStyle.php | 78 - .../HTMLPurifier/AttrDef/CSS/Multiple.php | 58 - .../HTMLPurifier/AttrDef/CSS/Number.php | 69 - .../HTMLPurifier/AttrDef/CSS/Percentage.php | 40 - .../AttrDef/CSS/TextDecoration.php | 38 - .../HTMLPurifier/AttrDef/CSS/URI.php | 61 - .../HTMLPurifier/AttrDef/Enum.php | 65 - .../HTMLPurifier/AttrDef/HTML/Bool.php | 28 - .../HTMLPurifier/AttrDef/HTML/Class.php | 34 - .../HTMLPurifier/AttrDef/HTML/Color.php | 32 - .../HTMLPurifier/AttrDef/HTML/FrameTarget.php | 21 - .../HTMLPurifier/AttrDef/HTML/ID.php | 70 - .../HTMLPurifier/AttrDef/HTML/Length.php | 41 - .../HTMLPurifier/AttrDef/HTML/LinkTypes.php | 53 - .../HTMLPurifier/AttrDef/HTML/MultiLength.php | 41 - .../HTMLPurifier/AttrDef/HTML/Nmtokens.php | 52 - .../HTMLPurifier/AttrDef/HTML/Pixels.php | 48 - .../HTMLPurifier/AttrDef/Integer.php | 73 - .../HTMLPurifier/AttrDef/Lang.php | 73 - .../HTMLPurifier/AttrDef/Switch.php | 34 - .../HTMLPurifier/AttrDef/Text.php | 15 - .../htmlpurifier/HTMLPurifier/AttrDef/URI.php | 77 - .../HTMLPurifier/AttrDef/URI/Email.php | 17 - .../AttrDef/URI/Email/SimpleCheck.php | 21 - .../HTMLPurifier/AttrDef/URI/Host.php | 68 - .../HTMLPurifier/AttrDef/URI/IPv4.php | 39 - .../HTMLPurifier/AttrDef/URI/IPv6.php | 99 - .../HTMLPurifier/AttrTransform.php | 56 - .../HTMLPurifier/AttrTransform/Background.php | 23 - .../HTMLPurifier/AttrTransform/BdoDir.php | 19 - .../HTMLPurifier/AttrTransform/BgColor.php | 23 - .../HTMLPurifier/AttrTransform/BoolToCSS.php | 36 - .../HTMLPurifier/AttrTransform/Border.php | 18 - .../HTMLPurifier/AttrTransform/EnumToCSS.php | 58 - .../AttrTransform/ImgRequired.php | 43 - .../HTMLPurifier/AttrTransform/ImgSpace.php | 44 - .../HTMLPurifier/AttrTransform/Input.php | 40 - .../HTMLPurifier/AttrTransform/Lang.php | 28 - .../HTMLPurifier/AttrTransform/Length.php | 27 - .../HTMLPurifier/AttrTransform/Name.php | 21 - .../HTMLPurifier/AttrTransform/NameSync.php | 27 - .../HTMLPurifier/AttrTransform/Nofollow.php | 41 - .../HTMLPurifier/AttrTransform/SafeEmbed.php | 15 - .../HTMLPurifier/AttrTransform/SafeObject.php | 16 - .../HTMLPurifier/AttrTransform/SafeParam.php | 64 - .../AttrTransform/ScriptRequired.php | 16 - .../HTMLPurifier/AttrTransform/Textarea.php | 18 - .../htmlpurifier/HTMLPurifier/AttrTypes.php | 77 - .../HTMLPurifier/AttrValidator.php | 162 - .../htmlpurifier/HTMLPurifier/Bootstrap.php | 104 - .../HTMLPurifier/CSSDefinition.php | 322 - .../htmlpurifier/HTMLPurifier/ChildDef.php | 48 - .../HTMLPurifier/ChildDef/Chameleon.php | 48 - .../HTMLPurifier/ChildDef/Custom.php | 90 - .../HTMLPurifier/ChildDef/Empty.php | 20 - .../HTMLPurifier/ChildDef/Optional.php | 26 - .../HTMLPurifier/ChildDef/Required.php | 117 - .../ChildDef/StrictBlockquote.php | 88 - .../HTMLPurifier/ChildDef/Table.php | 142 - .../htmlpurifier/HTMLPurifier/Config.php | 746 --- .../htmlpurifier/HTMLPurifier/ConfigDef.php | 9 - .../HTMLPurifier/ConfigDef/Directive.php | 55 - .../HTMLPurifier/ConfigDef/DirectiveAlias.php | 24 - .../HTMLPurifier/ConfigDef/Namespace.php | 10 - .../HTMLPurifier/ConfigSchema.php | 164 - .../ConfigSchema/Builder/ConfigSchema.php | 44 - .../HTMLPurifier/ConfigSchema/Builder/Xml.php | 106 - .../HTMLPurifier/ConfigSchema/Exception.php | 11 - .../HTMLPurifier/ConfigSchema/Interchange.php | 42 - .../ConfigSchema/Interchange/Directive.php | 77 - .../ConfigSchema/Interchange/Id.php | 37 - .../ConfigSchema/Interchange/Namespace.php | 21 - .../ConfigSchema/InterchangeBuilder.php | 180 - .../HTMLPurifier/ConfigSchema/Validator.php | 206 - .../ConfigSchema/ValidatorAtom.php | 66 - .../HTMLPurifier/ConfigSchema/schema.ser | Bin 14140 -> 0 bytes .../schema/Attr.AllowedClasses.txt | 8 - .../schema/Attr.AllowedFrameTargets.txt | 12 - .../ConfigSchema/schema/Attr.AllowedRel.txt | 9 - .../ConfigSchema/schema/Attr.AllowedRev.txt | 9 - .../schema/Attr.ClassUseCDATA.txt | 19 - .../schema/Attr.DefaultImageAlt.txt | 11 - .../schema/Attr.DefaultInvalidImage.txt | 9 - .../schema/Attr.DefaultInvalidImageAlt.txt | 8 - .../schema/Attr.DefaultTextDir.txt | 10 - .../ConfigSchema/schema/Attr.EnableID.txt | 16 - .../schema/Attr.ForbiddenClasses.txt | 8 - .../ConfigSchema/schema/Attr.IDBlacklist.txt | 5 - .../schema/Attr.IDBlacklistRegexp.txt | 9 - .../ConfigSchema/schema/Attr.IDPrefix.txt | 12 - .../schema/Attr.IDPrefixLocal.txt | 14 - .../HTMLPurifier/ConfigSchema/schema/Attr.txt | 3 - .../schema/AutoFormat.AutoParagraph.txt | 31 - .../ConfigSchema/schema/AutoFormat.Custom.txt | 12 - .../schema/AutoFormat.DisplayLinkURI.txt | 11 - .../schema/AutoFormat.Linkify.txt | 12 - .../AutoFormat.PurifierLinkify.DocURL.txt | 12 - .../schema/AutoFormat.PurifierLinkify.txt | 12 - ...rmat.RemoveEmpty.RemoveNbsp.Exceptions.txt | 11 - .../AutoFormat.RemoveEmpty.RemoveNbsp.txt | 15 - .../schema/AutoFormat.RemoveEmpty.txt | 46 - ...utoFormat.RemoveSpansWithoutAttributes.txt | 11 - .../ConfigSchema/schema/AutoFormat.txt | 3 - .../AutoFormatParam.PurifierLinkifyDocURL.txt | 12 - .../ConfigSchema/schema/AutoFormatParam.txt | 3 - .../schema/CSS.AllowImportant.txt | 8 - .../ConfigSchema/schema/CSS.AllowTricky.txt | 11 - .../ConfigSchema/schema/CSS.AllowedFonts.txt | 12 - .../schema/CSS.AllowedProperties.txt | 18 - .../ConfigSchema/schema/CSS.DefinitionRev.txt | 11 - .../schema/CSS.ForbiddenProperties.txt | 13 - .../ConfigSchema/schema/CSS.MaxImgLength.txt | 16 - .../ConfigSchema/schema/CSS.Proprietary.txt | 10 - .../ConfigSchema/schema/CSS.Trusted.txt | 9 - .../HTMLPurifier/ConfigSchema/schema/CSS.txt | 3 - .../schema/Cache.DefinitionImpl.txt | 14 - .../schema/Cache.SerializerPath.txt | 13 - .../schema/Cache.SerializerPermissions.txt | 11 - .../ConfigSchema/schema/Cache.txt | 3 - .../schema/Core.AggressivelyFixLt.txt | 18 - .../schema/Core.CollectErrors.txt | 12 - .../schema/Core.ColorKeywords.txt | 28 - .../schema/Core.ConvertDocumentToFragment.txt | 14 - .../Core.DirectLexLineNumberSyncInterval.txt | 17 - .../ConfigSchema/schema/Core.Encoding.txt | 15 - .../schema/Core.EscapeInvalidChildren.txt | 10 - .../schema/Core.EscapeInvalidTags.txt | 7 - .../schema/Core.EscapeNonASCIICharacters.txt | 13 - .../schema/Core.HiddenElements.txt | 19 - .../ConfigSchema/schema/Core.Language.txt | 10 - .../ConfigSchema/schema/Core.LexerImpl.txt | 34 - .../schema/Core.MaintainLineNumbers.txt | 16 - .../schema/Core.NormalizeNewlines.txt | 11 - .../schema/Core.RemoveInvalidImg.txt | 12 - .../Core.RemoveProcessingInstructions.txt | 11 - .../schema/Core.RemoveScriptContents.txt | 12 - .../HTMLPurifier/ConfigSchema/schema/Core.txt | 3 - .../ConfigSchema/schema/Filter.Custom.txt | 11 - .../Filter.ExtractStyleBlocks.Escaping.txt | 14 - .../Filter.ExtractStyleBlocks.Scope.txt | 29 - .../Filter.ExtractStyleBlocks.TidyImpl.txt | 16 - .../schema/Filter.ExtractStyleBlocks.txt | 74 - .../ConfigSchema/schema/Filter.YouTube.txt | 16 - .../ConfigSchema/schema/Filter.txt | 3 - ...FilterParam.ExtractStyleBlocksEscaping.txt | 14 - .../FilterParam.ExtractStyleBlocksScope.txt | 29 - ...FilterParam.ExtractStyleBlocksTidyImpl.txt | 15 - .../ConfigSchema/schema/FilterParam.txt | 3 - .../ConfigSchema/schema/HTML.Allowed.txt | 25 - .../schema/HTML.AllowedAttributes.txt | 19 - .../schema/HTML.AllowedElements.txt | 23 - .../schema/HTML.AllowedModules.txt | 20 - .../schema/HTML.Attr.Name.UseCDATA.txt | 11 - .../ConfigSchema/schema/HTML.BlockWrapper.txt | 18 - .../ConfigSchema/schema/HTML.CoreModules.txt | 23 - .../schema/HTML.CustomDoctype.txt | 9 - .../ConfigSchema/schema/HTML.DefinitionID.txt | 33 - .../schema/HTML.DefinitionRev.txt | 16 - .../ConfigSchema/schema/HTML.Doctype.txt | 11 - .../schema/HTML.FlashAllowFullScreen.txt | 11 - .../schema/HTML.ForbiddenAttributes.txt | 21 - .../schema/HTML.ForbiddenElements.txt | 20 - .../ConfigSchema/schema/HTML.MaxImgLength.txt | 14 - .../ConfigSchema/schema/HTML.Nofollow.txt | 7 - .../ConfigSchema/schema/HTML.Parent.txt | 12 - .../ConfigSchema/schema/HTML.Proprietary.txt | 12 - .../ConfigSchema/schema/HTML.SafeEmbed.txt | 13 - .../ConfigSchema/schema/HTML.SafeObject.txt | 13 - .../ConfigSchema/schema/HTML.Strict.txt | 9 - .../ConfigSchema/schema/HTML.TidyAdd.txt | 8 - .../ConfigSchema/schema/HTML.TidyLevel.txt | 24 - .../ConfigSchema/schema/HTML.TidyRemove.txt | 8 - .../ConfigSchema/schema/HTML.Trusted.txt | 9 - .../ConfigSchema/schema/HTML.XHTML.txt | 11 - .../HTMLPurifier/ConfigSchema/schema/HTML.txt | 3 - .../schema/Output.CommentScriptContents.txt | 10 - .../schema/Output.FixInnerHTML.txt | 15 - .../schema/Output.FlashCompat.txt | 11 - .../ConfigSchema/schema/Output.Newline.txt | 13 - .../ConfigSchema/schema/Output.SortAttr.txt | 14 - .../ConfigSchema/schema/Output.TidyFormat.txt | 25 - .../ConfigSchema/schema/Output.txt | 3 - .../ConfigSchema/schema/Test.ForceNoIconv.txt | 7 - .../HTMLPurifier/ConfigSchema/schema/Test.txt | 3 - .../schema/URI.AllowedSchemes.txt | 17 - .../ConfigSchema/schema/URI.Base.txt | 17 - .../ConfigSchema/schema/URI.DefaultScheme.txt | 10 - .../ConfigSchema/schema/URI.DefinitionID.txt | 11 - .../ConfigSchema/schema/URI.DefinitionRev.txt | 11 - .../ConfigSchema/schema/URI.Disable.txt | 14 - .../schema/URI.DisableExternal.txt | 11 - .../schema/URI.DisableExternalResources.txt | 13 - .../schema/URI.DisableResources.txt | 15 - .../ConfigSchema/schema/URI.Host.txt | 19 - .../ConfigSchema/schema/URI.HostBlacklist.txt | 9 - .../ConfigSchema/schema/URI.MakeAbsolute.txt | 13 - .../ConfigSchema/schema/URI.Munge.txt | 83 - .../schema/URI.MungeResources.txt | 17 - .../schema/URI.MungeSecretKey.txt | 30 - .../schema/URI.OverrideAllowedSchemes.txt | 9 - .../HTMLPurifier/ConfigSchema/schema/URI.txt | 3 - .../HTMLPurifier/ConfigSchema/schema/info.ini | 3 - .../htmlpurifier/HTMLPurifier/ContentSets.php | 155 - .../htmlpurifier/HTMLPurifier/Context.php | 82 - .../htmlpurifier/HTMLPurifier/Definition.php | 50 - .../HTMLPurifier/DefinitionCache.php | 108 - .../DefinitionCache/Decorator.php | 62 - .../DefinitionCache/Decorator/Cleanup.php | 43 - .../DefinitionCache/Decorator/Memory.php | 46 - .../DefinitionCache/Decorator/Template.php.in | 47 - .../HTMLPurifier/DefinitionCache/Null.php | 39 - .../DefinitionCache/Serializer.php | 191 - ...1.0,801ad73acbcf9d3127e1d01768d26453,1.ser | Bin 22628 -> 0 bytes ...1.0,ddc9b993d7fc8d4a185e8dbf5b9a0996,1.ser | Bin 92209 -> 0 bytes .../DefinitionCache/Serializer/README | 3 - ...0.0,05c766101e813c246917b022f97b5e6e,1.ser | Bin 327 -> 0 bytes .../HTMLPurifier/DefinitionCacheFactory.php | 91 - .../htmlpurifier/HTMLPurifier/Doctype.php | 60 - .../HTMLPurifier/DoctypeRegistry.php | 103 - .../htmlpurifier/HTMLPurifier/ElementDef.php | 183 - .../htmlpurifier/HTMLPurifier/Encoder.php | 426 -- .../HTMLPurifier/EntityLookup.php | 44 - .../HTMLPurifier/EntityLookup/entities.ser | 1 - .../HTMLPurifier/EntityParser.php | 144 - .../HTMLPurifier/ErrorCollector.php | 209 - .../htmlpurifier/HTMLPurifier/ErrorStruct.php | 60 - .../htmlpurifier/HTMLPurifier/Exception.php | 12 - .../htmlpurifier/HTMLPurifier/Filter.php | 46 - .../Filter/ExtractStyleBlocks.php | 135 - .../HTMLPurifier/Filter/YouTube.php | 39 - .../htmlpurifier/HTMLPurifier/Generator.php | 254 - .../HTMLPurifier/HTMLDefinition.php | 425 -- .../htmlpurifier/HTMLPurifier/HTMLModule.php | 244 - .../HTMLPurifier/HTMLModule/Bdo.php | 31 - .../HTMLModule/CommonAttributes.php | 26 - .../HTMLPurifier/HTMLModule/Edit.php | 38 - .../HTMLPurifier/HTMLModule/Forms.php | 118 - .../HTMLPurifier/HTMLModule/Hypertext.php | 31 - .../HTMLPurifier/HTMLModule/Image.php | 40 - .../HTMLPurifier/HTMLModule/Legacy.php | 143 - .../HTMLPurifier/HTMLModule/List.php | 37 - .../HTMLPurifier/HTMLModule/Name.php | 21 - .../HTMLPurifier/HTMLModule/Nofollow.php | 19 - .../HTMLModule/NonXMLCommonAttributes.php | 14 - .../HTMLPurifier/HTMLModule/Object.php | 47 - .../HTMLPurifier/HTMLModule/Presentation.php | 36 - .../HTMLPurifier/HTMLModule/Proprietary.php | 33 - .../HTMLPurifier/HTMLModule/Ruby.php | 27 - .../HTMLPurifier/HTMLModule/SafeEmbed.php | 34 - .../HTMLPurifier/HTMLModule/SafeObject.php | 52 - .../HTMLPurifier/HTMLModule/Scripting.php | 54 - .../HTMLModule/StyleAttribute.php | 24 - .../HTMLPurifier/HTMLModule/Tables.php | 66 - .../HTMLPurifier/HTMLModule/Target.php | 23 - .../HTMLPurifier/HTMLModule/Text.php | 71 - .../HTMLPurifier/HTMLModule/Tidy.php | 207 - .../HTMLPurifier/HTMLModule/Tidy/Name.php | 24 - .../HTMLModule/Tidy/Proprietary.php | 24 - .../HTMLPurifier/HTMLModule/Tidy/Strict.php | 21 - .../HTMLModule/Tidy/Transitional.php | 9 - .../HTMLPurifier/HTMLModule/Tidy/XHTML.php | 17 - .../HTMLModule/Tidy/XHTMLAndHTML4.php | 161 - .../HTMLModule/XMLCommonAttributes.php | 14 - .../HTMLPurifier/HTMLModuleManager.php | 403 -- .../HTMLPurifier/IDAccumulator.php | 53 - .../htmlpurifier/HTMLPurifier/Injector.php | 239 - .../HTMLPurifier/Injector/AutoParagraph.php | 345 -- .../HTMLPurifier/Injector/DisplayLinkURI.php | 26 - .../HTMLPurifier/Injector/Linkify.php | 46 - .../HTMLPurifier/Injector/PurifierLinkify.php | 45 - .../HTMLPurifier/Injector/RemoveEmpty.php | 51 - .../Injector/RemoveSpansWithoutAttributes.php | 60 - .../HTMLPurifier/Injector/SafeObject.php | 91 - .../htmlpurifier/HTMLPurifier/Language.php | 163 - .../Language/classes/en-x-test.php | 12 - .../Language/messages/en-x-test.php | 11 - .../Language/messages/en-x-testmini.php | 12 - .../HTMLPurifier/Language/messages/en.php | 63 - .../HTMLPurifier/LanguageFactory.php | 198 - .../htmlpurifier/HTMLPurifier/Length.php | 115 - .../htmlpurifier/HTMLPurifier/Lexer.php | 326 - .../HTMLPurifier/Lexer/DOMLex.php | 243 - .../HTMLPurifier/Lexer/DirectLex.php | 490 -- .../HTMLPurifier/Lexer/PEARSax3.php | 139 - .../htmlpurifier/HTMLPurifier/Lexer/PH5P.php | 3904 ------------ .../HTMLPurifier/PercentEncoder.php | 98 - .../htmlpurifier/HTMLPurifier/Printer.php | 176 - .../HTMLPurifier/Printer/CSSDefinition.php | 38 - .../HTMLPurifier/Printer/ConfigForm.css | 10 - .../HTMLPurifier/Printer/ConfigForm.js | 5 - .../HTMLPurifier/Printer/ConfigForm.php | 368 -- .../HTMLPurifier/Printer/HTMLDefinition.php | 272 - .../HTMLPurifier/PropertyList.php | 86 - .../HTMLPurifier/PropertyListIterator.php | 32 - .../htmlpurifier/HTMLPurifier/Strategy.php | 26 - .../HTMLPurifier/Strategy/Composite.php | 25 - .../HTMLPurifier/Strategy/Core.php | 18 - .../HTMLPurifier/Strategy/FixNesting.php | 328 - .../HTMLPurifier/Strategy/MakeWellFormed.php | 532 -- .../Strategy/RemoveForeignElements.php | 171 - .../Strategy/ValidateAttributes.php | 39 - .../htmlpurifier/HTMLPurifier/StringHash.php | 39 - .../HTMLPurifier/StringHashParser.php | 110 - .../HTMLPurifier/TagTransform.php | 36 - .../HTMLPurifier/TagTransform/Font.php | 98 - .../HTMLPurifier/TagTransform/Simple.php | 35 - .../htmlpurifier/HTMLPurifier/Token.php | 57 - .../HTMLPurifier/Token/Comment.php | 22 - .../htmlpurifier/HTMLPurifier/Token/Empty.php | 11 - .../htmlpurifier/HTMLPurifier/Token/End.php | 19 - .../htmlpurifier/HTMLPurifier/Token/Start.php | 11 - .../htmlpurifier/HTMLPurifier/Token/Tag.php | 57 - .../htmlpurifier/HTMLPurifier/Token/Text.php | 33 - .../HTMLPurifier/TokenFactory.php | 94 - .../vendors/htmlpurifier/HTMLPurifier/URI.php | 204 - .../HTMLPurifier/URIDefinition.php | 93 - .../htmlpurifier/HTMLPurifier/URIFilter.php | 45 - .../URIFilter/DisableExternal.php | 23 - .../URIFilter/DisableExternalResources.php | 12 - .../URIFilter/DisableResources.php | 11 - .../HTMLPurifier/URIFilter/HostBlacklist.php | 21 - .../HTMLPurifier/URIFilter/MakeAbsolute.php | 114 - .../HTMLPurifier/URIFilter/Munge.php | 58 - .../htmlpurifier/HTMLPurifier/URIParser.php | 70 - .../htmlpurifier/HTMLPurifier/URIScheme.php | 89 - .../HTMLPurifier/URIScheme/data.php | 96 - .../HTMLPurifier/URIScheme/file.php | 32 - .../HTMLPurifier/URIScheme/ftp.php | 42 - .../HTMLPurifier/URIScheme/http.php | 19 - .../HTMLPurifier/URIScheme/https.php | 12 - .../HTMLPurifier/URIScheme/mailto.php | 27 - .../HTMLPurifier/URIScheme/news.php | 22 - .../HTMLPurifier/URIScheme/nntp.php | 19 - .../HTMLPurifier/URISchemeRegistry.php | 68 - .../HTMLPurifier/UnitConverter.php | 254 - .../htmlpurifier/HTMLPurifier/VarParser.php | 154 - .../HTMLPurifier/VarParser/Flexible.php | 103 - .../HTMLPurifier/VarParser/Native.php | 26 - .../HTMLPurifier/VarParserException.php | 11 - .../MaxMind-DB-Reader/GeoLite2-Country.mmdb | Bin 3656998 -> 0 bytes .../plugins/MaxMind-DB-Reader/autoload.php | 45 - .../plugins/MaxMind-DB-Reader/composer.json | 34 - .../plugins/MaxMind-DB-Reader/ext/config.m4 | 40 - .../plugins/MaxMind-DB-Reader/ext/maxminddb.c | 623 -- .../MaxMind-DB-Reader/ext/php_maxminddb.h | 24 - .../src/MaxMind/Db/Reader.php | 309 - .../src/MaxMind/Db/Reader/Decoder.php | 341 - .../Db/Reader/InvalidDatabaseException.php | 10 - .../src/MaxMind/Db/Reader/Metadata.php | 69 - .../src/MaxMind/Db/Reader/Util.php | 26 - libraries/plugins/index.html | 10 - libraries/plugins/ip_address/ip-lib.php | 13 - .../src/Address/AddressInterface.php | 96 - .../ip_address/src/Address/AssignedRange.php | 138 - .../plugins/ip_address/src/Address/IPv4.php | 351 -- .../plugins/ip_address/src/Address/IPv6.php | 499 -- .../plugins/ip_address/src/Address/Type.php | 42 - libraries/plugins/ip_address/src/Factory.php | 156 - .../plugins/ip_address/src/Range/Pattern.php | 284 - .../ip_address/src/Range/RangeInterface.php | 89 - .../plugins/ip_address/src/Range/Single.php | 174 - .../plugins/ip_address/src/Range/Subnet.php | 281 - .../plugins/ip_address/src/Range/Type.php | 141 - libraries/plugins/phpMussel/loader.php | 215 - libraries/plugins/phpMussel/vault/.htaccess | 6 - .../plugins/phpMussel/vault/cache/.htaccess | 6 - .../plugins/phpMussel/vault/cache/75.tmp | 1 - .../plugins/phpMussel/vault/cache/index.dat | 1 - libraries/plugins/phpMussel/vault/cli.php | 438 -- .../plugins/phpMussel/vault/components.dat | 505 -- libraries/plugins/phpMussel/vault/config.ini | 516 -- libraries/plugins/phpMussel/vault/config.php | 202 - libraries/plugins/phpMussel/vault/config.yaml | 378 -- .../phpMussel/vault/fe_assets/.htaccess | 6 - .../phpMussel/vault/fe_assets/_accounts.html | 34 - .../vault/fe_assets/_accounts_row.html | 16 - .../phpMussel/vault/fe_assets/_config.html | 24 - .../vault/fe_assets/_config_row.html | 6 - .../phpMussel/vault/fe_assets/_files.html | 32 - .../vault/fe_assets/_files_edit.html | 21 - .../vault/fe_assets/_files_rename.html | 19 - .../phpMussel/vault/fe_assets/_files_row.html | 6 - .../phpMussel/vault/fe_assets/_home.html | 21 - .../phpMussel/vault/fe_assets/_login.html | 13 - .../phpMussel/vault/fe_assets/_logs.html | 15 - .../vault/fe_assets/_nav_complete_access.html | 19 - .../fe_assets/_nav_logs_access_only.html | 12 - .../vault/fe_assets/_quarantine.html | 27 - .../vault/fe_assets/_quarantine_row.html | 21 - .../vault/fe_assets/_statistics.html | 69 - .../phpMussel/vault/fe_assets/_updates.html | 29 - .../vault/fe_assets/_updates_row.html | 8 - .../vault/fe_assets/_upload_test.html | 16 - .../phpMussel/vault/fe_assets/frontend.css | 62 - .../phpMussel/vault/fe_assets/frontend.html | 24 - .../phpMussel/vault/fe_assets/icons.php | 218 - .../phpMussel/vault/fe_assets/pips.php | 25 - .../plugins/phpMussel/vault/frontend.php | 2725 -------- .../phpMussel/vault/frontend_functions.php | 1007 --- .../plugins/phpMussel/vault/functions.php | 5509 ----------------- .../plugins/phpMussel/vault/greylist.csv | 1 - .../plugins/phpMussel/vault/hotfixes.php | 83 - libraries/plugins/phpMussel/vault/lang.php | 128 - .../plugins/phpMussel/vault/lang/.htaccess | 6 - .../phpMussel/vault/lang/lang.ar.fe.php | 301 - .../plugins/phpMussel/vault/lang/lang.ar.php | 130 - .../phpMussel/vault/lang/lang.de.fe.php | 301 - .../plugins/phpMussel/vault/lang/lang.de.php | 131 - .../phpMussel/vault/lang/lang.en.fe.php | 301 - .../plugins/phpMussel/vault/lang/lang.en.php | 127 - .../phpMussel/vault/lang/lang.es.fe.php | 301 - .../plugins/phpMussel/vault/lang/lang.es.php | 127 - .../phpMussel/vault/lang/lang.fr.fe.php | 301 - .../plugins/phpMussel/vault/lang/lang.fr.php | 132 - .../phpMussel/vault/lang/lang.hi.fe.php | 301 - .../plugins/phpMussel/vault/lang/lang.hi.php | 127 - .../phpMussel/vault/lang/lang.id.fe.php | 301 - .../plugins/phpMussel/vault/lang/lang.id.php | 129 - .../phpMussel/vault/lang/lang.it.fe.php | 301 - .../plugins/phpMussel/vault/lang/lang.it.php | 127 - .../phpMussel/vault/lang/lang.ja.fe.php | 301 - .../plugins/phpMussel/vault/lang/lang.ja.php | 127 - .../phpMussel/vault/lang/lang.ko.fe.php | 301 - .../plugins/phpMussel/vault/lang/lang.ko.php | 127 - .../phpMussel/vault/lang/lang.nl.fe.php | 301 - .../plugins/phpMussel/vault/lang/lang.nl.php | 131 - .../phpMussel/vault/lang/lang.pt.fe.php | 301 - .../plugins/phpMussel/vault/lang/lang.pt.php | 132 - .../phpMussel/vault/lang/lang.ru.fe.php | 301 - .../plugins/phpMussel/vault/lang/lang.ru.php | 139 - .../phpMussel/vault/lang/lang.th.fe.php | 301 - .../plugins/phpMussel/vault/lang/lang.th.php | 127 - .../phpMussel/vault/lang/lang.tr.fe.php | 301 - .../plugins/phpMussel/vault/lang/lang.tr.php | 132 - .../phpMussel/vault/lang/lang.ur.fe.php | 301 - .../plugins/phpMussel/vault/lang/lang.ur.php | 130 - .../phpMussel/vault/lang/lang.vi.fe.php | 301 - .../plugins/phpMussel/vault/lang/lang.vi.php | 127 - .../phpMussel/vault/lang/lang.zh-TW.php | 127 - .../phpMussel/vault/lang/lang.zh-tw.fe.php | 302 - .../phpMussel/vault/lang/lang.zh.fe.php | 302 - .../plugins/phpMussel/vault/lang/lang.zh.php | 127 - .../plugins/phpMussel/vault/php5.4.x.php | 67 - libraries/plugins/phpMussel/vault/plugins.dat | 11 - .../plugins/phpMussel/vault/plugins/.htaccess | 6 - .../vault/plugins/logtoastra/plugin.php | 75 - .../phpMussel/vault/quarantine/.htaccess | 6 - .../plugins/phpMussel/vault/scan_kills.txt | 37 - .../plugins/phpMussel/vault/scan_log.txt | 25 - .../phpMussel/vault/scan_log_serialized.txt | 6 - .../plugins/phpMussel/vault/signatures.dat | 9 - .../phpMussel/vault/signatures/.htaccess | 6 - .../phpMussel/vault/signatures/switch.dat | 47 - .../phpMussel/vault/template_custom.html | 33 - .../phpMussel/vault/template_default.html | 93 - libraries/plugins/phpMussel/vault/themes.dat | 30 - libraries/plugins/phpMussel/vault/upload.php | 401 -- upgrade.php | 21 - 547 files changed, 65968 deletions(-) delete mode 100644 .gitignore delete mode 100644 .gitlab/issue_templates/Bug.md delete mode 100644 .gitlab/issue_templates/Feature.md delete mode 100644 .gitlab/merge_request_templates/Bugfix.md delete mode 100644 .gitlab/merge_request_templates/DevelopToMaster.md delete mode 100644 .gitlab/merge_request_templates/Feature.md delete mode 100644 .gitlab/merge_request_templates/Hotfix.md delete mode 100644 Astra.php delete mode 100644 ak.php delete mode 100644 api.php delete mode 100644 astra-inc.php delete mode 100644 blackhole.php delete mode 100644 block-page.php delete mode 100644 czar-89FC3CFA43E356C42382A941A99E4386.html delete mode 100644 gk.php delete mode 100644 install-astra.php delete mode 100644 libraries/API_connect.php delete mode 100644 libraries/Astra_country.php delete mode 100644 libraries/Astra_ip.php delete mode 100644 libraries/Astra_setup.php delete mode 100644 libraries/Bad_bots.php delete mode 100644 libraries/Config_file.php delete mode 100644 libraries/Config_options.php delete mode 100644 libraries/Crypto.php delete mode 100644 libraries/PHPIDS.php delete mode 100644 libraries/SQLite_db.php delete mode 100644 libraries/Token_bucket.php delete mode 100644 libraries/Update_DB.php delete mode 100644 libraries/Update_config.php delete mode 100644 libraries/Updater.php delete mode 100644 libraries/Virtual_patches.php delete mode 100644 libraries/browser.php delete mode 100644 libraries/index.html delete mode 100644 libraries/plugins/IDS/.htaccess delete mode 100644 libraries/plugins/IDS/Caching/Apc.php delete mode 100644 libraries/plugins/IDS/Caching/Database.php delete mode 100644 libraries/plugins/IDS/Caching/Factory.php delete mode 100644 libraries/plugins/IDS/Caching/File.php delete mode 100644 libraries/plugins/IDS/Caching/Interface.php delete mode 100644 libraries/plugins/IDS/Caching/Memcached.php delete mode 100644 libraries/plugins/IDS/Caching/Session.php delete mode 100644 libraries/plugins/IDS/Config/Config.ini.php delete mode 100644 libraries/plugins/IDS/Converter.php delete mode 100644 libraries/plugins/IDS/Event.php delete mode 100644 libraries/plugins/IDS/Filter.php delete mode 100644 libraries/plugins/IDS/Filter/Storage.php delete mode 100644 libraries/plugins/IDS/Init.php delete mode 100644 libraries/plugins/IDS/Ips.php delete mode 100644 libraries/plugins/IDS/LICENSE.txt delete mode 100644 libraries/plugins/IDS/Log/Api.php delete mode 100644 libraries/plugins/IDS/Log/Composite.php delete mode 100644 libraries/plugins/IDS/Log/Database.php delete mode 100644 libraries/plugins/IDS/Log/Email.php delete mode 100644 libraries/plugins/IDS/Log/File.php delete mode 100644 libraries/plugins/IDS/Log/Interface.php delete mode 100644 libraries/plugins/IDS/Monitor.php delete mode 100644 libraries/plugins/IDS/Report.php delete mode 100644 libraries/plugins/IDS/Version.php delete mode 100644 libraries/plugins/IDS/default_filter.json delete mode 100644 libraries/plugins/IDS/default_filter.xml delete mode 100644 libraries/plugins/IDS/default_filter_orig.xml delete mode 100644 libraries/plugins/IDS/tmp/bad_bots.txt delete mode 100644 libraries/plugins/IDS/tmp/cookie_ips.txt delete mode 100644 libraries/plugins/IDS/tmp/custom_rules.txt delete mode 100644 libraries/plugins/IDS/tmp/ips.txt delete mode 100644 libraries/plugins/IDS/tmp/phpids_log.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier.auto.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier.autoload.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier.func.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier.includes.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier.kses.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier.path.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier.safe-includes.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrCollections.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Background.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Border.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Color.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Composite.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Filter.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Font.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Length.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Multiple.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Number.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Percentage.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/URI.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/Enum.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/Bool.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/Class.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/Color.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/ID.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/Length.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/Nmtokens.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/Pixels.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/Integer.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/Lang.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/Switch.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/Text.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/URI.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/URI/Email.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/URI/Host.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/URI/IPv4.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/URI/IPv6.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Background.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/BdoDir.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/BgColor.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/BoolToCSS.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Border.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/EnumToCSS.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/ImgRequired.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/ImgSpace.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Input.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Lang.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Length.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Name.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/NameSync.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Nofollow.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/SafeEmbed.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/SafeObject.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/SafeParam.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/ScriptRequired.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Textarea.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTypes.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrValidator.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Bootstrap.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/CSSDefinition.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/Chameleon.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/Custom.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/Empty.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/Optional.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/Required.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/StrictBlockquote.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/Table.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Config.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigDef.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigDef/Directive.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigDef/DirectiveAlias.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigDef/Namespace.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Builder/Xml.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Exception.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Directive.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Id.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Namespace.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/InterchangeBuilder.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Validator.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/ValidatorAtom.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema.ser delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormatParam.PurifierLinkifyDocURL.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormatParam.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.Language.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.ExtractStyleBlocksEscaping.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.ExtractStyleBlocksScope.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.ExtractStyleBlocksTidyImpl.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.FixInnerHTML.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Test.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Base.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Host.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.txt delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/info.ini delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ContentSets.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Context.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Definition.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator/Memory.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator/Template.php.in delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Null.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/CSS/4.1.0,801ad73acbcf9d3127e1d01768d26453,1.ser delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/HTML/4.1.0,ddc9b993d7fc8d4a185e8dbf5b9a0996,1.ser delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/README delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/URI/4.0.0,05c766101e813c246917b022f97b5e6e,1.ser delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCacheFactory.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Doctype.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DoctypeRegistry.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ElementDef.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Encoder.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/EntityLookup.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/EntityLookup/entities.ser delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/EntityParser.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ErrorCollector.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ErrorStruct.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Exception.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Filter.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Filter/ExtractStyleBlocks.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Filter/YouTube.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Generator.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLDefinition.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Bdo.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/CommonAttributes.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Edit.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Forms.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Hypertext.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Image.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Legacy.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/List.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Name.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Nofollow.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Object.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Presentation.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Proprietary.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Ruby.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/SafeEmbed.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/SafeObject.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Scripting.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/StyleAttribute.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Tables.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Target.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Text.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Tidy.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/Name.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/Proprietary.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/Strict.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/Transitional.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/XHTML.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/XMLCommonAttributes.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModuleManager.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/IDAccumulator.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Injector.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Injector/AutoParagraph.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Injector/DisplayLinkURI.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Injector/Linkify.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Injector/PurifierLinkify.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Injector/RemoveEmpty.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Injector/SafeObject.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Language.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Language/classes/en-x-test.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Language/messages/en-x-test.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Language/messages/en-x-testmini.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Language/messages/en.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/LanguageFactory.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Length.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Lexer.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Lexer/DOMLex.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Lexer/DirectLex.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Lexer/PEARSax3.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Lexer/PH5P.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/PercentEncoder.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Printer.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Printer/CSSDefinition.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Printer/ConfigForm.css delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Printer/ConfigForm.js delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Printer/ConfigForm.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Printer/HTMLDefinition.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/PropertyList.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/PropertyListIterator.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Strategy.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Strategy/Composite.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Strategy/Core.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Strategy/FixNesting.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Strategy/MakeWellFormed.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Strategy/RemoveForeignElements.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Strategy/ValidateAttributes.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/StringHash.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/StringHashParser.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/TagTransform.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/TagTransform/Font.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/TagTransform/Simple.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Token.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Token/Comment.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Token/Empty.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Token/End.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Token/Start.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Token/Tag.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Token/Text.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/TokenFactory.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/URI.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/URIDefinition.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/URIFilter.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/URIFilter/DisableExternal.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/URIFilter/DisableExternalResources.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/URIFilter/DisableResources.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/URIFilter/HostBlacklist.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/URIFilter/MakeAbsolute.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/URIFilter/Munge.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/URIParser.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/URIScheme.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/URIScheme/data.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/URIScheme/file.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/URIScheme/ftp.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/URIScheme/http.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/URIScheme/https.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/URIScheme/mailto.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/URIScheme/news.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/URIScheme/nntp.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/URISchemeRegistry.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/UnitConverter.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/VarParser.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/VarParser/Flexible.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/VarParser/Native.php delete mode 100644 libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/VarParserException.php delete mode 100644 libraries/plugins/MaxMind-DB-Reader/GeoLite2-Country.mmdb delete mode 100644 libraries/plugins/MaxMind-DB-Reader/autoload.php delete mode 100644 libraries/plugins/MaxMind-DB-Reader/composer.json delete mode 100644 libraries/plugins/MaxMind-DB-Reader/ext/config.m4 delete mode 100644 libraries/plugins/MaxMind-DB-Reader/ext/maxminddb.c delete mode 100644 libraries/plugins/MaxMind-DB-Reader/ext/php_maxminddb.h delete mode 100644 libraries/plugins/MaxMind-DB-Reader/src/MaxMind/Db/Reader.php delete mode 100644 libraries/plugins/MaxMind-DB-Reader/src/MaxMind/Db/Reader/Decoder.php delete mode 100644 libraries/plugins/MaxMind-DB-Reader/src/MaxMind/Db/Reader/InvalidDatabaseException.php delete mode 100644 libraries/plugins/MaxMind-DB-Reader/src/MaxMind/Db/Reader/Metadata.php delete mode 100644 libraries/plugins/MaxMind-DB-Reader/src/MaxMind/Db/Reader/Util.php delete mode 100644 libraries/plugins/index.html delete mode 100644 libraries/plugins/ip_address/ip-lib.php delete mode 100644 libraries/plugins/ip_address/src/Address/AddressInterface.php delete mode 100644 libraries/plugins/ip_address/src/Address/AssignedRange.php delete mode 100644 libraries/plugins/ip_address/src/Address/IPv4.php delete mode 100644 libraries/plugins/ip_address/src/Address/IPv6.php delete mode 100644 libraries/plugins/ip_address/src/Address/Type.php delete mode 100644 libraries/plugins/ip_address/src/Factory.php delete mode 100644 libraries/plugins/ip_address/src/Range/Pattern.php delete mode 100644 libraries/plugins/ip_address/src/Range/RangeInterface.php delete mode 100644 libraries/plugins/ip_address/src/Range/Single.php delete mode 100644 libraries/plugins/ip_address/src/Range/Subnet.php delete mode 100644 libraries/plugins/ip_address/src/Range/Type.php delete mode 100644 libraries/plugins/phpMussel/loader.php delete mode 100644 libraries/plugins/phpMussel/vault/.htaccess delete mode 100644 libraries/plugins/phpMussel/vault/cache/.htaccess delete mode 100644 libraries/plugins/phpMussel/vault/cache/75.tmp delete mode 100644 libraries/plugins/phpMussel/vault/cache/index.dat delete mode 100644 libraries/plugins/phpMussel/vault/cli.php delete mode 100644 libraries/plugins/phpMussel/vault/components.dat delete mode 100644 libraries/plugins/phpMussel/vault/config.ini delete mode 100644 libraries/plugins/phpMussel/vault/config.php delete mode 100644 libraries/plugins/phpMussel/vault/config.yaml delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/.htaccess delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/_accounts.html delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/_accounts_row.html delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/_config.html delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/_config_row.html delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/_files.html delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/_files_edit.html delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/_files_rename.html delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/_files_row.html delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/_home.html delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/_login.html delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/_logs.html delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/_nav_complete_access.html delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/_nav_logs_access_only.html delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/_quarantine.html delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/_quarantine_row.html delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/_statistics.html delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/_updates.html delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/_updates_row.html delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/_upload_test.html delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/frontend.css delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/frontend.html delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/icons.php delete mode 100644 libraries/plugins/phpMussel/vault/fe_assets/pips.php delete mode 100644 libraries/plugins/phpMussel/vault/frontend.php delete mode 100644 libraries/plugins/phpMussel/vault/frontend_functions.php delete mode 100644 libraries/plugins/phpMussel/vault/functions.php delete mode 100644 libraries/plugins/phpMussel/vault/greylist.csv delete mode 100644 libraries/plugins/phpMussel/vault/hotfixes.php delete mode 100644 libraries/plugins/phpMussel/vault/lang.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/.htaccess delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.ar.fe.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.ar.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.de.fe.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.de.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.en.fe.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.en.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.es.fe.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.es.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.fr.fe.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.fr.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.hi.fe.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.hi.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.id.fe.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.id.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.it.fe.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.it.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.ja.fe.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.ja.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.ko.fe.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.ko.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.nl.fe.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.nl.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.pt.fe.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.pt.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.ru.fe.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.ru.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.th.fe.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.th.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.tr.fe.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.tr.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.ur.fe.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.ur.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.vi.fe.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.vi.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.zh-TW.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.zh-tw.fe.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.zh.fe.php delete mode 100644 libraries/plugins/phpMussel/vault/lang/lang.zh.php delete mode 100644 libraries/plugins/phpMussel/vault/php5.4.x.php delete mode 100644 libraries/plugins/phpMussel/vault/plugins.dat delete mode 100644 libraries/plugins/phpMussel/vault/plugins/.htaccess delete mode 100644 libraries/plugins/phpMussel/vault/plugins/logtoastra/plugin.php delete mode 100644 libraries/plugins/phpMussel/vault/quarantine/.htaccess delete mode 100644 libraries/plugins/phpMussel/vault/scan_kills.txt delete mode 100644 libraries/plugins/phpMussel/vault/scan_log.txt delete mode 100644 libraries/plugins/phpMussel/vault/scan_log_serialized.txt delete mode 100644 libraries/plugins/phpMussel/vault/signatures.dat delete mode 100644 libraries/plugins/phpMussel/vault/signatures/.htaccess delete mode 100644 libraries/plugins/phpMussel/vault/signatures/switch.dat delete mode 100644 libraries/plugins/phpMussel/vault/template_custom.html delete mode 100644 libraries/plugins/phpMussel/vault/template_default.html delete mode 100644 libraries/plugins/phpMussel/vault/themes.dat delete mode 100644 libraries/plugins/phpMussel/vault/upload.php delete mode 100644 upgrade.php diff --git a/.gitignore b/.gitignore deleted file mode 100644 index a61be9f..0000000 --- a/.gitignore +++ /dev/null @@ -1,49 +0,0 @@ -/db -hack.php -post.html -astra-config.php -workspace.xml -/.idea -czar-A9EC79EC9B9113CAF4A4EBD5E04AFBC9.html -/.vscode -libraries/plugins/astra-gk -tests - -# Compiled source # -################### -*.com -*.class -*.dll -*.exe -*.o -*.so - -# Packages # -############ -# it's better to unpack these files and commit the raw source -# git has its own built in compression methods -*.7z -*.dmg -*.gz -*.iso -*.jar -*.rar -*.tar -*.zip -*.db - -# Logs and databases # -###################### -*.log -*.sql -*.sqlite - -# OS generated files # -###################### -.DS_Store -.DS_Store? -._* -.Spotlight-V100 -.Trashes -ehthumbs.db -Thumbs.db \ No newline at end of file diff --git a/.gitlab/issue_templates/Bug.md b/.gitlab/issue_templates/Bug.md deleted file mode 100644 index c7dd307..0000000 --- a/.gitlab/issue_templates/Bug.md +++ /dev/null @@ -1,26 +0,0 @@ - - -## Description - - -## Expected Behavior - - -## Actual Behavior - - -## Possible Fix - - -## Steps to Reproduce - - -1. -2. -3. -4. - -## Context - - -/label ~Bug \ No newline at end of file diff --git a/.gitlab/issue_templates/Feature.md b/.gitlab/issue_templates/Feature.md deleted file mode 100644 index 42cffb1..0000000 --- a/.gitlab/issue_templates/Feature.md +++ /dev/null @@ -1,13 +0,0 @@ - - -## Detailed Description - - -## Context - - - -## Possible Implementation - - -/label ~Feature \ No newline at end of file diff --git a/.gitlab/merge_request_templates/Bugfix.md b/.gitlab/merge_request_templates/Bugfix.md deleted file mode 100644 index 79bdb05..0000000 --- a/.gitlab/merge_request_templates/Bugfix.md +++ /dev/null @@ -1,32 +0,0 @@ - -# Bugfix - - -## Description - - -## Motivation and Context - - - -## How Has This Been Tested? - - - - -## Screenshots (if appropriate): - -## Types of changes - -- [ ] Bug fix (non-breaking change which fixes an issue) -- [ ] New feature (non-breaking change which adds functionality) -- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) - -## Checklist: - - -- [ ] My code follows the code style of this project. -- [ ] My change requires a change to the documentation. -- [ ] I have updated the documentation accordingly. - -/label ~Bugfix \ No newline at end of file diff --git a/.gitlab/merge_request_templates/DevelopToMaster.md b/.gitlab/merge_request_templates/DevelopToMaster.md deleted file mode 100644 index 7d888b3..0000000 --- a/.gitlab/merge_request_templates/DevelopToMaster.md +++ /dev/null @@ -1,35 +0,0 @@ - -# Develop -> Master - - -## Issue(s) - - -## Description - - -## Motivation and Context - - - -## How Has This Been Tested? - - - - -## Screenshots (if appropriate): - -## Types of changes - -- [ ] Bug fix (non-breaking change which fixes an issue) -- [ ] New feature (non-breaking change which adds functionality) -- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) - -## Checklist: - - -- [ ] My code follows the code style of this project. -- [ ] My change requires a change to the documentation. -- [ ] I have updated the documentation accordingly. - -/label ~Feature \ No newline at end of file diff --git a/.gitlab/merge_request_templates/Feature.md b/.gitlab/merge_request_templates/Feature.md deleted file mode 100644 index 90cc578..0000000 --- a/.gitlab/merge_request_templates/Feature.md +++ /dev/null @@ -1,32 +0,0 @@ - -# Feature - - -## Description - - -## Motivation and Context - - - -## How Has This Been Tested? - - - - -## Screenshots (if appropriate): - -## Types of changes - -- [ ] Bug fix (non-breaking change which fixes an issue) -- [ ] New feature (non-breaking change which adds functionality) -- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) - -## Checklist: - - -- [ ] My code follows the code style of this project. -- [ ] My change requires a change to the documentation. -- [ ] I have updated the documentation accordingly. - -/label ~Feature \ No newline at end of file diff --git a/.gitlab/merge_request_templates/Hotfix.md b/.gitlab/merge_request_templates/Hotfix.md deleted file mode 100644 index a1c587d..0000000 --- a/.gitlab/merge_request_templates/Hotfix.md +++ /dev/null @@ -1,32 +0,0 @@ - -# Hotfix - - -## Description - - -## Motivation and Context - - - -## How Has This Been Tested? - - - - -## Screenshots (if appropriate): - -## Types of changes - -- [ ] Bug fix (non-breaking change which fixes an issue) -- [ ] New feature (non-breaking change which adds functionality) -- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) - -## Checklist: - - -- [ ] My code follows the code style of this project. -- [ ] My change requires a change to the documentation. -- [ ] I have updated the documentation accordingly. - -/label ~Hotfix \ No newline at end of file diff --git a/Astra.php b/Astra.php deleted file mode 100644 index 022c338..0000000 --- a/Astra.php +++ /dev/null @@ -1,419 +0,0 @@ -' . $str . "

\r\n"; - } - } - - public function __construct() - { - - require_once(ASTRAPATH . 'astra-config.php'); - require_once(ASTRAPATH . 'libraries/Config_options.php'); - - if (!defined('CZ_DB_PATH')) { - define('CZ_DB_PATH', dirname(__FILE__) . '/'); - } - - echo_debug('Astra Constuctor Loaded'); - echo_debug('Astra version - v' . CZ_ASTRA_CLIENT_VERSION . ' and PHP version - ' . PHP_VERSION); - if (!$this->meets_requirements()) { - echo_debug('Requirements not met'); - return FALSE; - } else { - echo_debug('Meets all Requirements'); - } - - self::$_config = new AstraConfig(); - - if (CZ_ASTRA_ACTIVE) { - - echo_debug('Astra Active'); - require_once(ASTRAPATH . 'libraries/Astra_ip.php'); - - $client_ip = new Astra_ip(); - - self::$_ip = $client_ip->get_ip_address(); - if (trim(self::$_ip) == "") { - self::$_ip = '103.16.70.12'; - } - - self::$_user_agent = !empty($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; - - if (!empty($cz_lvl)) { - self::$cz_lvl = $cz_lvl; - } else { - self::$cz_lvl = get_cz_lvl(); - $cz_lvl = self::$cz_lvl; - } - - echo_debug('Current IP: ' . self::$_ip); - echo_debug('Current UA: ' . self::$_user_agent); - echo_debug(self::$cz_lvl); - echo_debug($cz_lvl); - - $this->check_search_engine(); - - if (CZ_SETUP) { - echo_debug('Has been Setup'); - $this->init(); - } else { - echo_debug('NOT been Setup'); - if (isset($_SERVER['HTTP_HOST']) && $this->setup()) { - echo_debug('Setup Complete'); - $this->init(); - } - } - } else { - echo_debug('Astra not active'); - show_astra_debug_log(); - return; - } - - show_astra_debug_log(); - } - - protected function meets_requirements() - { - if (!defined('PDO::ATTR_DRIVER_NAME')) { - echo_debug('PDO Driver Missing'); - return FALSE; - } else { - echo_debug('PDO Loaded'); - } - - if (!in_array('sqlite', PDO::getAvailableDrivers(), TRUE)) { - echo_debug('sqlite3 extension not loaded'); - return false; - } else { - echo_debug('SQLite loaded'); - } - - if (!file_exists(CZ_DB_PATH . 'db/' . CZ_DATABASE_NAME . '.db')) { - echo_debug('Updating DB'); - $this->update_db(); - } else { - /* - unlink(ASTRAPATH . 'db/' . CZ_DATABASE_NAME . '.db'); - echo_debug('Updating DB'); - $this->update_db(); - * - */ - } - return TRUE; - } - - public function init() - { - echo_debug('Initializing'); - self::connect_db(); - $this->run(); - } - - public static function connect_db() - { - require_once(ASTRAPATH . 'libraries/SQLite_db.php'); - self::$_db = new SQLiteWrapper(self::$cz_lvl); - } - - private function update_db() - { - require_once(ASTRAPATH . 'libraries/Update_DB.php'); - $update_db = new Update_DB(); - } - - public function setup() - { - - if (empty($_SERVER)) { - return false; - } - - // Added for TC - if (!defined("CZ_SECRET_KEY") || (defined("CZ_SECRET_KEY") && strlen(CZ_SECRET_KEY) < 2)) { - echo_debug('Enc keys not set'); - return false; - } - - /* - if (file_exists(CZ_DB_PATH . 'db/' . CZ_DATABASE_NAME . 'db')) { - if (unlink(CZ_DB_PATH . 'db/' . CZ_DATABASE_NAME . 'db')) { - echo_debug('Deletd Already Set Database'); - } else { - echo_debug('Unable to Delete Database'); - return FALSE; - } - } - */ - - require_once(ASTRAPATH . 'libraries/Astra_setup.php'); - $astraSetup = new Astra_setup(); - $astraSetup->createAstraFiles(); - $rootApiUri = $astraSetup->getRootApiFileUri(); - - require_once(ASTRAPATH . 'libraries/API_connect.php'); - $connect = new API_connect(); - - $connect->setRootApiUri($rootApiUri); - - if (!$connect->setup()) { - return FALSE; - } - - require_once(ASTRAPATH . 'libraries/Update_DB.php'); - $update_db = new Update_DB(); - - if (!$update_db) { - return FALSE; - } - - require_once(ASTRAPATH . 'libraries/Update_config.php'); - $update_config_file = Update_config('CZ_SETUP', base64_encode('TRUE'), FALSE); - - return $update_config_file; - - } - - public function run() - { - echo_debug('About to run'); - - $blocked_or_trusted = self::$_db->is_blocked_or_trusted(self::$_ip, false, self::$_config); - - if ($blocked_or_trusted == "blocked" && !self::$_is_search_engine) { - self::show_block_page(); - } - - if ($blocked_or_trusted == "trusted" || self::is_whitelisted_url() || self::$_is_search_engine) { - echo_debug("Is trusted or whitelisted or a search engine"); - if (self::$_is_search_engine) { - $is_trusted = self::$_db->edit_ip_exception('add', 'trusted', self::$_ip); - } - return TRUE; - } - - $is_bad_bot = $this->is_bad_bot(); - - if ($blocked_or_trusted == "blocked" || $is_bad_bot || self::$_is_fake_search_engine_bot) { - echo_debug('You have been blocked'); - require_once(ASTRAPATH . 'libraries/API_connect.php'); - $connect = new API_connect(); - if ($is_bad_bot || self::$_is_fake_search_engine_bot) { - // self::$_db->log_hit(self::$_ip); - self::$_db->edit_ip_exception('add', 'blocked', self::$_ip); - - echo_debug('You are a badbot'); - $connect->send_request("badbot", array()); - echo_debug('Reported Blackbot status'); - } - self::show_block_page(); - } - - $this->run_upload_scan(); - $this->run_IDS(); - $this->run_patches(); - - if (!self::$_is_search_engine) { - $this->run_token_bucket(); - } - - } - - protected function is_whitelisted_url() - { - if (!empty($_SERVER['REQUEST_URI'])) { - $url = $_SERVER['REQUEST_URI']; - - - $db_params = self::$_db->get_custom_params(); - - $db_allowed_urls = $db_params['url']; - - $allowed_urls = array('/admin/', '/wp-admin', 'checkout', 'paypal', '/ipn.php', '/transaction', 'callback', 'contact-form-7', 'wc-ajax=', '/wc-api', '/wp-json', 'api/soap', 'api/v2_soap'); - - $merge = array_merge($allowed_urls, $db_allowed_urls); - - //print_r($merge); - - foreach ($merge as $allowed_url) { - if (strpos($url, $allowed_url) !== false) { - return TRUE; - } - } - } - - return FALSE; - } - - public static function show_block_page($attack_param = null) - { - if (defined('CZ_ASTRA_MODE') && CZ_ASTRA_MODE == 'monitor') { - return TRUE; - } - - if (!headers_sent()) { - header('HTTP/1.0 403 Forbidden'); - } - echo_debug('About to show block page'); - - if (file_exists(ASTRAPATH . 'block-page-custom.php')) { - $block_page_path = ASTRAPATH . 'block-page-custom.php'; - } else { - $block_page_path = ASTRAPATH . 'block-page.php'; - } - - if (!headers_sent()) { - header('X-XSS-Protection: 1; mode=block'); - header('X-Frame-Options: deny'); - header('X-Content-Type-Options: nosniff'); - - /* No cache headers */ - header('X-LiteSpeed-Cache-Control: no-cache'); - header("Expires: Tue, 03 Jul 2001 06:00:00 GMT"); - header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); - header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); - header("Cache-Control: post-check=0, pre-check=0", false); - header("Pragma: no-cache"); - header("Connection: close"); - } - - if (file_exists($block_page_path)) { - include($block_page_path); - exit; - die(); - } - - if (!headers_sent()) { - header("Location: " . CZ_BLOCK_PAGE_URL); /* Redirect browser */ - } else { - echo ''; - } - die("You are blocked"); - exit(); - } - - protected function run_upload_scan() - { - - if (empty($_FILES)) { - return true; - } - - if (version_compare(PHP_VERSION, '5.4.0') >= 0) { - echo_debug('Including mussel'); - $config = new AstraConfig(); - $data['key'] = 'file_uploads'; - $musselResult = $config->get_config($data); - if ($musselResult) { - $phpMusselConfig = json_decode($musselResult, true); - if ($phpMusselConfig['status'] == 'TRUE') { - require_once(ASTRAPATH . 'libraries/plugins/phpMussel/loader.php'); - } else { - return false; - } - } else { // Run upload scan by default - require_once(ASTRAPATH . 'libraries/plugins/phpMussel/loader.php'); - } - - } else { - echo_debug('PHP version (' . PHP_VERSION . ') < 5.4.0 so not including Mussel'); - } - - } - - protected function run_ids() - { - require_once(ASTRAPATH . 'libraries/PHPIDS.php'); - echo_debug('Including IDS'); - $phpids = new PHPIDS(self::$_db, self::$_ip); - } - - protected function run_patches() - { - require_once(ASTRAPATH . 'libraries/Virtual_patches.php'); - $patches = new Astra_virtual_patches(); - $patches->apply(); - - $applied_patches = $patches->get_applied_patches(); - - if (count($applied_patches) > 0) { - self::$_db->log_hit(self::$_ip); - self::show_block_page(); - } - } - - protected function is_bad_bot() - { - $db = self::$_db->is_bad_bot(self::$_user_agent); - - if ($db && !self::$_is_search_engine) { - return TRUE; - } - - return FALSE; - } - - protected function check_search_engine() - { - require_once(ASTRAPATH . 'libraries/Bad_bots.php'); - $bot = new Bad_bots(self::$_user_agent, self::$_ip); - - self::$_is_search_engine = $bot->is_search_engine(); - self::$_is_fake_search_engine_bot = $bot->is_fake_bot(); - - return true; - } - - function get_sso_token() - { - $time = strtolower(gmdate("FYhiA")); - $str = CZ_CLIENT_KEY . '|' . CZ_ACCESS_KEY . '|' . $time; - $token = hash_hmac('sha256', $str, CZ_SECRET_KEY, false); - return $token; - } - - protected function run_token_bucket() - { - return TRUE; - require_once(ASTRAPATH . 'libraries/Token_bucket.php'); - Token_bucket::run(); - } - - } - -} \ No newline at end of file diff --git a/ak.php b/ak.php deleted file mode 100644 index 7082cfa..0000000 --- a/ak.php +++ /dev/null @@ -1,74 +0,0 @@ -get_sso_key(); - - $stored = $this->get_session_key(); - - if ($stored === $expected || $rcvd === $expected) { - $this->store_key($expected); - unset($_GET['key']); - return true; - } - header("HTTP/1.0 404 Not Found"); - exit; - } - - protected function get_session_key() - { - - if (function_exists('session_status')) { - if (session_status() === PHP_SESSION_NONE) { - session_start(); - } - } else { - if (session_id() == '') { - session_start(); - } - } - - $key = !empty($_SESSION['astra_ak_key']) ? $_SESSION['astra_ak_key'] : ""; - - return $key; - } - - protected function store_key($key) - { - $_SESSION['astra_ak_key'] = $key; - } - - protected function get_sso_key() - { - define("CZ_DEBUG", TRUE); - require_once __DIR__ . '/astra-config.php'; - $time = strtolower(gmdate("FYhiA")); - $str = CZ_CLIENT_KEY . '|' . CZ_ACCESS_KEY . '|' . $time; - $token = hash_hmac('sha256', $str, CZ_SECRET_KEY, false); - return $token; - } - - public function __construct() - { - if ($this->auth()) { - $this->load(); - } - } - - function load() - { - require __DIR__ . '/Astra.php'; - $astra = new Astra(); - } - } - - new Astra_ak; -} \ No newline at end of file diff --git a/api.php b/api.php deleted file mode 100644 index 9de9d55..0000000 --- a/api.php +++ /dev/null @@ -1,417 +0,0 @@ -run(); - } - - protected function respond($code, $msg = "", $slug = "") - { - $this->response['origin'] = 'client'; - $this->response['code'] = $code; - $this->response['slug'] = $slug; - if ($msg == "") { - switch ($code) { - case 0: - $msg = "failed"; - break; - case 1: - $msg = "success"; - break; - default: - $msg = "error"; - break; - } - } - - $this->response['msg'] = $msg; - - if (empty($this->response['errors'])) { - $this->response['errors'] = array(); - } - - header('Content-Type: application/json'); - echo json_encode($this->response); - - die(); - } - - protected function addError($slug, $msg) - { - $this->response['errors'][$slug] = $msg; - } - - protected function authenticate() - { - $accessResponse = !empty($_POST['access_code']) ? $_POST['access_code'] : ''; - - if ($accessResponse != CZ_ACCESS_KEY) - $this->respond(-1, "Access Code doesn't match", 'access_code_missing'); - - $encResponse = $_POST['encRequest']; - - $crypto = new Astra_crypto(); - $this->receivedResponse = @unserialize($crypto->decrypt($encResponse, CZ_SECRET_KEY)); - - //echo $this->receivedResponse['client_key'] . "-" . CZ_CLIENT_KEY; - if (($this->receivedResponse == false) || ($this->receivedResponse['client_key'] != CZ_CLIENT_KEY)) - $this->respond(-1, "Secret/Client Key Mismatch"); - - return TRUE; - } - - public function bad_bots_update() - { - require_once(ASTRAPATH . 'libraries\Update_bad_bots.php'); - if (update_bad_bots()) - $this->respond(1); - else - $this->respond(0, "Unable to respond"); - } - - protected function filters_update() - { - require_once(ASTRAPATH . 'libraries\Crypto.php'); - - $dataArray['client_key'] = CZ_CLIENT_KEY; - $dataArray['api'] = "get_filters"; - $str = serialize($dataArray); - - $crypto = new Astra_crypto(); - $encrypted_data = $crypto->encrypt($str, CZ_SECRET_KEY); - - $postdata = http_build_query( - array( - 'encRequest' => $encrypted_data, - 'access_code' => CZ_ACCESS_KEY, - ) - ); - - $opts = array('http' => - array( - 'method' => 'POST', - 'header' => 'Content-type: application/x-www-form-urlencoded', - 'content' => $postdata - ) - ); - $context = stream_context_create($opts); - - $server_reply = file_get_contents(CZ_API_URL, FALSE, $context); - - $filter_file_path = 'libraries/plugins/IDS/default_filter.xml'; - - if (!empty($server_reply)) { - if (is_writeable(dirname(ASTRAPATH . $filter_file_path))) { - $dlHandler = fopen(ASTRAPATH . $filter_file_path, 'w'); - if (!fwrite($dlHandler, $server_reply)) { - $this->respond(0, "Unable to write"); - exit(); - } - fclose($dlHandler); - $this->respond(1); - } else { - $this->respond(0, "Directory not writable"); - } - } else { - $this->respond(0, "Empty Response"); - } - - $this->respond(0); - } - - protected function astra_update() - { - require_once(ASTRAPATH . 'libraries/Updater.php'); - - echo_debug("API Call received"); - echo_debug($this->receivedResponse); - - $server_version = $this->receivedResponse['version']; - - $platform = isset($this->receivedResponse['platform']) ? $this->receivedResponse['platform'] : 'php'; - - echo_debug("Loading updater"); - - $updater = new Astra_updater($server_version); - - if ($updater->is_update()) { - if ($updater->download_file()) { - sleep(1); - if ($updater->update($platform)) { - sleep(1); - $updater->delete(); - - ## Initialize the Setup Process - require_once('libraries/API_connect.php'); - $connect = new API_connect(); - if (!$connect->report_update()) { - $this->respond(-1, "Unable to report update"); - } - } - - $this->response['errors'] = $updater->get_errors(); - $this->respond(1); - } - } - - $this->response['errors'] = $updater->get_errors(); - $this->respond(-1, "Noting to update"); - } - - protected function update_config() - { - require_once(ASTRAPATH . 'libraries/Update_config.php'); - - if (isset($this->receivedResponse['constant_check_for_quotes'])) { - $quotes = $this->receivedResponse['constant_check_for_quotes']; - } else - $quotes = FALSE; - - if (update_config($this->receivedResponse['constant_name'], $this->receivedResponse['constant_value'], $quotes)) { - $this->respond(1); - } else { - $this->respond(0); - } - } - - protected function get_version() - { - $ret = explode(".", CZ_ASTRA_CLIENT_VERSION); - $this->response['version'] = array('major' => $ret[0], 'minor' => $ret[1], 'patch' => $ret[2]); - $this->respond(1); - } - - protected function valid_param($val) - { - if ($this->receivedResponse['rule_type'] === "url") { - return true; - } - - $val = strtolower($val); - $allowed = array('get.', 'post.', 'request.', 'cookie.', 'session.'); - - foreach ($allowed as $a) { - if (substr($val, 0, strlen($a)) == $a) - return TRUE; - } - return FALSE; - } - - protected function whitelist_url() - { - ASTRA::connect_db(); - - $action = $this->receivedResponse['rule_action']; - $val = $this->receivedResponse['rule_val']; - - $allowed_rule_action = array('add', 'delete'); - - if (in_array($action, $allowed_rule_action)) { - switch ($action) { - case 'add': - $result = ASTRA::$_db->add_whitelist_url($val); - break; - case 'delete': - $result = ASTRA::$_db->delete_whitelist_url($val); - break; - } - - if ($result == TRUE) { - $this->respond(1); - } else { - $this->respond(0, "Unable to update db"); - } - - } else { - $this->respond('0', 'Not a valid action'); - } - - } - - protected function custom_rule() - { - //rule_action = add, delete - //rule_type = "trusted", "blocked", "exception", "html" ,"json" - - ASTRA::connect_db(); - - $action = $this->receivedResponse['rule_action']; - $type = $this->receivedResponse['rule_type']; - $val = $this->receivedResponse['rule_val']; - - $allowed_rule_action = array('add', 'delete', 'update'); - - $ip_check = array('trusted', 'blocked'); - $param_check = array('exception', 'html', 'json', 'url',); - $allowed_rule_type = array_merge($ip_check, $param_check); - - if (in_array($action, $allowed_rule_action) && in_array($type, $allowed_rule_type)) { - if (in_array($type, $ip_check) && is_string($val) && strlen($val) == 2) { - if ($type == "blocked") { - $config_data = array( - "key" => "country_blocked", - "value" => $val, - "autoload" => 1, - ); - } elseif ($type == "trusted") { - $config_data = array( - "key" => "country_trusted", - "value" => $val, - "autoload" => 1, - ); - } - switch ($action) { - case 'add': - $this->config_actions("add_config", $config_data); - break; - case 'delete': - $this->config_actions("delete_config", $config_data); - break; - case 'update': - $this->config_actions("update_country", $config_data); - break; - } - } elseif (in_array($type, $ip_check) && filter_var($val, FILTER_VALIDATE_IP) !== TRUE) { - if (ASTRA::$_db->edit_ip_exception($action, $type, $val)) { - $this->respond(1); - } else { - $this->respond('0', 'Unable to set custom IP rule'); - } - } elseif (in_array($type, $param_check) && $this->valid_param($val)) { - if (ASTRA::$_db->edit_param_exception($action, $type, $val)) { - $this->respond(1); - } else { - $this->respond(0, "Couldn't edit exception"); - } - } else { - $this->respond('0', 'Could not validate'); - } - } else { - $this->respond('0', 'Not Allowed'); - } - } - - protected function is_value_exist($_config_option, $config_data) - { - $blocked_countries = json_decode($_config_option->get_config(array("key" => "country_blocked"))); - $trusted_countries = json_decode($_config_option->get_config(array("key" => "country_trusted"))); - - if (!empty($trusted_countries) && !empty($blocked_countries)) { - if (is_array($blocked_countries)) { - return in_array($config_data['value'], $blocked_countries); - } else { - return ($config_data['value'] == $blocked_countries) ? true : false; - } - - if (is_array($trusted_countries)) { - return in_array($config_data['value'], $trusted_countries); - } else { - return ($config_data['value'] == $trusted_countries) ? true : false; - } - } else - return false; - } - - protected function config_actions($func_name, $data) - { - $config = new AstraConfig(); - $result = null; - switch ($func_name) { - case "get_config": - $result = $config->get_config($data); - break; - case "add_config": - $_is_exist = $this->is_value_exist($config, $data); - $result = (!$_is_exist) ? $config->add_config($data) : true; - break; - case "delete_config": - $result = $config->delete_config($data); - break; - case "update_config": - $result = $config->update_config($data); - break; - case "update_country": - $result = $config->update_country($data); - break; - } - if ($result) - $this->respond(1); - else - $this->respond(0, 'Unable to update configuration'); - } - - public function run() - { - - if (!$this->authenticate()) { - $this->respond(-1, "Invalid API Call"); - } - - echo_debug($this->receivedResponse); - - $api = $this->receivedResponse['api']; - - switch ($api) { - case "ping": - $this->respond(1); - break; - case "version": - $this->get_version(); - break; - case "update": - $this->astra_update(); - break; - case "update_bad_bots": - $this->bad_bots_update(); - break; - case "update_filters": - $this->filters_update(); - break; - case "custom_rule": - $this->custom_rule(); - break; - case "update_config": - $this->update_config(); - break; - default: - echo "ping"; - } - } - - } - -} - -if (class_exists('Api')) { - $astra_api = new Api(); -} \ No newline at end of file diff --git a/astra-inc.php b/astra-inc.php deleted file mode 100644 index f8f2d10..0000000 --- a/astra-inc.php +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/blackhole.php b/blackhole.php deleted file mode 100644 index b0c6af7..0000000 --- a/blackhole.php +++ /dev/null @@ -1,12 +0,0 @@ -get_ip_address(); - -ASTRA::$_db->block_bot($ip_address); -ASTRA::show_block_page(); -die(); \ No newline at end of file diff --git a/block-page.php b/block-page.php deleted file mode 100644 index 5e91767..0000000 --- a/block-page.php +++ /dev/null @@ -1,459 +0,0 @@ -get_ip_address(); -$formCheck = false; -if($_POST){ - $formCheck = true; -} -?> - - - - - Attention! - - - - "+d+""'; - $script = "eval(\"" . str_replace(array("\\", '"'), array("\\\\", '\"'), $script) . "\")"; - $script = ''; - return '[javascript protected email address]' . $script; - } - - $support_email = hide_email('help@getastra.com'); - ?> - - - -
- What ASTRA Means -
-

Sorry, this is not allowed.

-

Thank you for visiting our website, unfortunately our website protection system has detected an issue with your IP - address and wont let you proceed any further.

-

If you feel this is an error, please submit a support request. Thank you for your patience.

-

- https://www.getastra.com/ -

- -
-

Go to Homepage

-
- - - - - - - \ No newline at end of file diff --git a/czar-89FC3CFA43E356C42382A941A99E4386.html b/czar-89FC3CFA43E356C42382A941A99E4386.html deleted file mode 100644 index 397e989..0000000 --- a/czar-89FC3CFA43E356C42382A941A99E4386.html +++ /dev/null @@ -1 +0,0 @@ -89FC3CFA43E356C42382A941A99E4386 \ No newline at end of file diff --git a/gk.php b/gk.php deleted file mode 100644 index b471548..0000000 --- a/gk.php +++ /dev/null @@ -1,13 +0,0 @@ - - * @date 2019-04-07 - */ - -$path_to_ms = __DIR__ . "/libraries/plugins/astra-gk/index.php"; - -if(file_exists($path_to_ms)){ - include_once $path_to_ms; -} \ No newline at end of file diff --git a/install-astra.php b/install-astra.php deleted file mode 100644 index 10e9cfa..0000000 --- a/install-astra.php +++ /dev/null @@ -1,735 +0,0 @@ -data_path = "astra-install.json"; - - $this->response = array( - 'success' => false, - 'msg' => "", - ); - - $this->log = ""; - - $this->run(); - } - - function __destruct() - { - //$this->print_log(); - } - - protected function log($msg) - { - - $this->log .= "

" . $msg . "

\r\n"; - $this->log_count++; - } - - public function getLogs() - { - return $this->log; - } - - public function getInstalled(){ - return file_exists('astra/astra-inc.php') || $this->installed; - } - - protected function print_log() - { - echo $this->log; - } - - protected function respond($success, $msg = '') - { - $this->response['success'] = $success; - if (!empty($msg)) { - $this->response['msg'] = $msg; - } - - header('Content-Type: application/json'); - echo json_encode($this->response, JSON_PRETTY_PRINT); - exit; - } - - protected function load_json() - { - if (file_exists($this->data_path)) { - $string = file_get_contents($this->data_path); - $json_data = json_decode($string, true); - } - - if (!empty($json_data) && is_array($json_data)) { - return $json_data; - } - - return array(); - } - - protected function save_json() - { - return true; - $saved = file_put_contents($this->data_path, json_encode($this->websites)); - return is_int($saved); - } - - public function is_astra_installed($path) - { - return file_exists($path . 'astra'); - } - - protected function clean_install($path) - { - $zip_path = $this->get_astra_zip_path($path); - unlink($zip_path); - - $this->log('Deleting the ZIP file.'); - - return !file_exists($zip_path); - } - - protected function do_install($path = '') - { - - $key = 0; - $this->websites[$key]['installed_astra'] = FALSE; - - if ($this->is_astra_installed($path)) { - $this->log("Astra already installed. Nothing to do! :)"); - return $this->websites[$key]; - } - - - $this->log("-----------"); - $this->log("Installing for " . $_SERVER['HTTP_HOST']); - - - $function_name = "install_default"; - if (method_exists($this, $function_name)) { - $installed = $this->$function_name($path); - if ($installed == true) { - $this->websites[$key]['installed_astra'] = TRUE; - - $this->log("Installed for $path"); - - //$this->respond(true, 'Installed for ' . $website['user']); - } else { - $this->websites[$key]['installed_astra'] = FALSE; - $this->websites[$key]['reason_for_failure'] = $installed; - $this->log("Unable to install. Please email help@getastra.com if you need help"); - //$this->respond(false, 'Unable to install for ' . $website['user']); - } - - - } - - return $this->websites[$key]; - } - - - protected function meets_requirements() { - if (!defined('PDO::ATTR_DRIVER_NAME')) { - $this->log('PDO Driver Missing. Please install or enable in cPanel.'); - return FALSE; - } - - if(!class_exists('ZipArchive')){ - $this->log('ZipArchive Default Class is missing. Please install or enable in cPanel.'); - return FALSE; - } - - if (!extension_loaded('sqlite3')) { - $this->log('sqlite3 extension not loaded. Please install or enable in cPanel. Find installation guides here.'); - return FALSE; - } - - $pdo_drivers = PDO::getAvailableDrivers(); - - if(!is_array($pdo_drivers) || !in_array('sqlite', $pdo_drivers)){ - $this->log('pdo_sqlite extension not loaded. Please install or enable in cPanel. Find installation guides here.'); - } - - return TRUE; - } - - protected function is_astra_included_in_user_ini($file_path) - { - if (!file_exists($file_path)) { - return false; - } - - $contents = file_get_contents($file_path); - - if (strpos($contents, 'astra-inc') !== false) { - return true; - } - - return false; - } - - protected function update_user_ini($path, $astra_inc_path) - { - $path_user_ini = $path . '.user.ini'; - - if ($this->is_astra_included_in_user_ini($path_user_ini)) { - return true; - } - - $file_content = "auto_prepend_file=$astra_inc_path\n\r"; - - $write = false; - - - if (!file_exists($path_user_ini)) { - $write = file_put_contents($path_user_ini, $file_content); - } else { - $old_contents = file_get_contents($path_user_ini); - $file_content .= "\r\n" . $old_contents; - $write = file_put_contents($path_user_ini, $file_content); - $this->log("Updated existing .user.ini"); - } - - return $write; - } - - protected function install_default($path, $plugin_folder_path = '') - { - if (empty($plugin_folder_path)) { - $plugin_folder_path = $path; - } - - $plugin_zip_path = $this->get_astra_zip_path($path); - $username = ""; - - if (file_exists($plugin_zip_path . 'astra')) { - $this->log("Astra is already installed"); - return false; - } - - if (file_exists($plugin_folder_path) && is_writable($plugin_folder_path)) { - - if (!empty($plugin_zip_path) && file_exists($plugin_zip_path)) { - if ($this->is_valid_zip($plugin_zip_path)) { - $extracted = $this->extract_zip($plugin_zip_path, $plugin_folder_path); - - if ($extracted) { - if ($this->update_user_ini($path, $plugin_folder_path . 'astra/astra-inc.php')) { - return true; - } else { - $this->log("Unable to update the .user.ini file for $path"); - return false; - } - } else { - $this->log( "Unable to extract the ZIP."); - return false; - } - } else { - $this->log($this->response['msg']); - return false; - } - } else { - $this->log("Astra ZIP does (secure-*.zip) not exist.
Can you please check?"); - return false; - } - } else { - $this->log( "Folder does not exist or isn't writable ($plugin_folder_path)"); - return false; - } - } - - protected function get_astra_zip_path($path) - { - $matches = glob($path . 'secure-*.zip'); - - $file_name = ""; - if (!empty($matches[0])) { - $file_name = str_replace("./", "/", $matches[0]); - } - - //$this->log("ZIP file path: " . $file_name); - - return $file_name; - } - - protected function extract_zip($zip_path, $extract_to) - { - $zip = new ZipArchive; - if ($zip->open($zip_path) === TRUE) { - $extracted = $zip->extractTo($extract_to); - $zip->close(); - - return $extracted; - } - return FALSE; - } - - protected function is_valid_zip($filename) - { - - $zip = new ZipArchive; - - $res = $zip->open($filename, ZipArchive::CHECKCONS); - - if ($res !== TRUE) { - switch ($res) { - case ZipArchive::ER_NOZIP : - $ret = FALSE; - $this->response['msg'] = "Invalid ZIP - Not a zip archive"; - case ZipArchive::ER_INCONS : - $ret = FALSE; - $this->response['msg'] = "Invalid ZIP - Consistency check failed"; - case ZipArchive::ER_CRC : - $this->response['msg'] = "Invalid ZIP - Error with CRC"; - $ret = FALSE; - default : - $this->response['msg'] = "Invalid ZIP - Checksum failed"; - $ret = FALSE; - } - - if ($ret) { - $zip->close(); - } - return $ret; - } else { - return TRUE; - } - } - - function run() - { - $path = getcwd() . "/"; - $this->log("Path to be secured: " . $path); - - $should_install = isset($_GET['complete']); - - if ($should_install && $this->meets_requirements()) { - $website = $this->do_install($path); - - if ($website['installed_astra'] === true) { - $this->clean_install($path); - $this->log('Deleting Installer'); - $this->installed = true; - unlink(__FILE__); - } - } - - } -} - -$deploy = new Deploy(); -$installed = $deploy->getInstalled(); -$logs = $deploy->getLogs(); -?> - - - - - Astra Installer - - - - -
-
-
- - -
-
-
-
-
-
- -

>_

-
- -

- -
- - " - class="btn btn-lg btn-submit btn-success"/> - PHP Version: -
- -

Installation complete!

- -
-
-
- - \ No newline at end of file diff --git a/libraries/API_connect.php b/libraries/API_connect.php deleted file mode 100644 index 4e63924..0000000 --- a/libraries/API_connect.php +++ /dev/null @@ -1,292 +0,0 @@ -api_url = CZ_API_URL; - } else { - $this->api_url = $url; - } - } - - public function ping() - { - $dataArray = array(); - return $this->send_request("ping", $dataArray); - } - - public function report_update() - { - return true; - $ak = $this->get_end_point_url(FALSE); - - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, $ak . 'ak.php'); - curl_setopt($ch, CURLOPT_POST, FALSE); - curl_setopt($ch, CURLOPT_HTTPHEADER, array('Cz-Setup: true')); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - - $output = curl_exec($ch); - echo_debug('cURL Executed'); - - echo_debug('cURL Error >> ' . curl_error($ch)); - echo_debug("
$output
"); - - curl_close($ch); - echo_debug('cURLd'); - - $resp = $output; - $resp = json_decode($resp); - - if (isset($resp->code) && $resp->code == 1) { - return TRUE; - } else { - return FALSE; - } - } - - protected function get_end_point_url($api = TRUE) - { - - $current_url = $this->getHttpsPrefix(); - - $current_url .= str_replace(realpath($_SERVER["DOCUMENT_ROOT"]), $_SERVER['HTTP_HOST'], realpath(dirname(dirname(__FILE__)))); - - if ($api) { - $current_url .= '/api.php'; - } else { - $current_url .= '/'; - } - - $current_url = rtrim($current_url, '/'); - - return $current_url; - - } - - public function setRootApiUri($rootApiUri) - { - if ($rootApiUri == false) { - return false; - } - - $subFolderIfAny = str_replace($_SERVER['DOCUMENT_ROOT'], '', $rootApiUri); - - - $current_url = $this->getHttpsPrefix(); - - $current_url .= rtrim($_SERVER['HTTP_HOST'], '/') . '/' . ltrim($subFolderIfAny, '/'); - $this->rootApiUri = $current_url; - - return; - - } - - protected function getHttpsPrefix(){ - if (@$_SERVER['HTTPS'] == 'on' || @$_SERVER['SERVER_PORT'] == '443' || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) { - return "https://"; - } else { - return "http://"; - } - } - - protected function is_request_from_astra() - { - $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? strtolower($_SERVER['HTTP_USER_AGENT']) : "empty"; - - if (strpos($user_agent, "astra") !== false) { - return true; - } - - return false; - } - - public function setup() - { - - $res = explode(".", CZ_ASTRA_CLIENT_VERSION); - - $version['major'] = $res[0]; - $version['minor'] = $res[1]; - $version['patch'] = $res[2]; - - $client_api_url = !empty($this->rootApiUri) ? $this->rootApiUri : $this->get_end_point_url(); - - $dataArray = array( - "version" => $version, - "client_api_url" => $client_api_url, - "platform" => CZ_PLATFORM, - ); - - /* print_r($dataArray); */ - echo_debug('SETUP API Send Request'); - echo_debug(serialize($dataArray)); - - return $this->send_request("setup", $dataArray); - } - - public function custom_rule($action, $type, $ip_address = "") - { - $dataArray['rule_action'] = $action; - $dataArray['rule_type'] = $type; - $dataArray['ip_address'] = $ip_address; - return $this->send_request("custom_rule", $dataArray); - } - - /* - public function custom_rule($action, $type, $ip_address = "") { - - } - * - */ - - public function hook_has_loggedin($dataArray = array()) - { - - if ($dataArray[0]['success'] === 1) { - return false; - } - - require_once(__DIR__ . '/../Astra.php'); - $astra = new Astra(); - ASTRA::$_db->log_hit(ASTRA::$_ip); - - $dataArray[0]['blocking'] = (ASTRA::$_db->is_blocked_or_trusted(ASTRA::$_ip, false, ASTRA::$_config) == "blocked") ? 1 : 0; - - return true; - } - - public function send_request($api = "", $dataArray = array(), $platform = "php") - { - - if ($this->is_request_from_astra()) { - return false; - } - - $callback = array($this, 'hook_' . $api); - - if (is_callable($callback)) { - $hookResponse = call_user_func($callback, array($dataArray)); - if (is_array($hookResponse)) { - $dataArray = $hookResponse; - } - } - - - $dataArray['client_key'] = CZ_CLIENT_KEY; - $dataArray['api'] = $api; - - //$dataArray['site'] = $_SERVER['SERVER_NAME']; - $dataArray['site'] = $_SERVER['SERVER_NAME']; - if (!isset($dataArray['version'])) { - $dataArray['version'] = CZ_ASTRA_CLIENT_VERSION; - } - - $browser = new Browser_Astra(); - $browser_info['useragent'] = $browser->getUserAgent(); - $browser_info['browser_name'] = $browser->getBrowser(); - $browser_info['version'] = $browser->getVersion(); - $browser_info['platform'] = $browser->getPlatform(); - $browser_info['isMobile'] = $browser->isMobile(); - $browser_info['isTablet'] = $browser->isTablet(); - - $dataArray['ip'] = ASTRA::$_ip; - - if ($dataArray['ip'] == "") { - $dataArray['ip'] = "::1"; - return false; - } - - $dataArray['browser'] = $browser_info; - $dataArray['attack_url'] = htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES, 'UTF-8'); - - echo_debug($this->api_url); - echo_debug($dataArray); - - $str = serialize($dataArray); - - $crypto = new Astra_crypto(); - $encrypted_data = $crypto->encrypt($str, CZ_SECRET_KEY); - - if ($platform == "wordpress") { - $post_param = array( - "encRequest" => $encrypted_data, - "access_code" => CZ_ACCESS_KEY, - ); - $response = wp_remote_post($this->api_url, array( - 'method' => 'POST', - 'timeout' => 5, - 'redirection' => 5, - 'httpversion' => '1.0', - 'blocking' => true, - 'headers' => array(), - 'body' => $post_param, - 'cookies' => array() - ) - ); - - if (is_wp_error($response) || (isset($response['body']) && is_wp_error($response['body']))) { - return true; - } - - $resp = $response['body']; - } else { - echo_debug('cURLing'); - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, $this->api_url); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, "encRequest=" . $encrypted_data . "&access_code=" . CZ_ACCESS_KEY); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); - curl_setopt($ch, CURLOPT_TIMEOUT, 5); //timeout in seconds - curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); - curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); - - $output = curl_exec($ch); - echo_debug('cURL Executed'); - - echo_debug('cURL Error >> ' . curl_error($ch)); - echo_debug("
$output
"); - - if (curl_error($ch)) { - $error_msg = curl_error($ch); - } - - curl_close($ch); - echo_debug('cURLd'); - $resp = $output; - - } - - - $resp = json_decode($resp); - - if (isset($error_msg)) { - //echo $error_msg; - } - - //var_dump($output); - - - if (isset($resp->code) && $resp->code == 1) { - return TRUE; - } else { - return FALSE; - } - } - -} - -/* End of file api_connect.php */ -?> \ No newline at end of file diff --git a/libraries/Astra_country.php b/libraries/Astra_country.php deleted file mode 100644 index b678e2d..0000000 --- a/libraries/Astra_country.php +++ /dev/null @@ -1,45 +0,0 @@ -get_country_cf($ip_address); - - if($country_cf !== false){ - return $country_cf; - } - - - $ignore_ips = array("0.0.0.0", "0.255.255.255"); - if(!in_array($ip_address, $ignore_ips) ){ - require_once(ASTRAPATH . 'libraries/plugins/MaxMind-DB-Reader/autoload.php'); - $reader = new Reader(ASTRAPATH . 'libraries/plugins/MaxMind-DB-Reader/GeoLite2-Country.mmdb'); - - if(isset($reader->get($ip_address)['country']['iso_code'])){ - return strtoupper($reader->get($ip_address)['country']['iso_code']); - } - } - return 'US'; - } - - - protected function get_country_cf($ip_address){ - if(isset($_SERVER["HTTP_CF_IPCOUNTRY"]) && strlen($_SERVER["HTTP_CF_IPCOUNTRY"]) == 2 && is_string($_SERVER["HTTP_CF_IPCOUNTRY"])){ - return strtoupper($_SERVER["HTTP_CF_IPCOUNTRY"]); - } - - return false; - } - - } -} \ No newline at end of file diff --git a/libraries/Astra_ip.php b/libraries/Astra_ip.php deleted file mode 100644 index f047424..0000000 --- a/libraries/Astra_ip.php +++ /dev/null @@ -1,61 +0,0 @@ -validate_ip($ip) || $this->validate_ipv6($ip)) && $ip !== $serverIp) { - return $ip; - } - } - } - } - return isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : false; - } - - /** - * Ensures an ip address is both a valid IP and does not fall within - * a private network range. - */ - - function validate_ipv6($ip) - { - if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { - return true; - } - - return false; - } - - function validate_ip($ip) - { - if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) === false) { - return false; - } - return true; - } - - - } -} \ No newline at end of file diff --git a/libraries/Astra_setup.php b/libraries/Astra_setup.php deleted file mode 100644 index c3c125c..0000000 --- a/libraries/Astra_setup.php +++ /dev/null @@ -1,150 +0,0 @@ - - * @date 2019-04-15 - */ - -class Astra_setup -{ - - private $basePath; - private $filesCreated = false; - - public function getFilesCreated() - { - return $this->filesCreated; - } - - public function createAstraFiles() - { - $folderPath = $this->getBasePath(); - - if ($folderPath == false || !file_exists($folderPath)) { - return false; - } - - $astraPath = rtrim($folderPath, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . 'astra' . DIRECTORY_SEPARATOR; - - if (!file_exists($astraPath) && !is_dir($astraPath) && is_writable($folderPath)) { - mkdir($astraPath, 0755); - } - - if (file_exists($astraPath)) { - $this->createFiles($folderPath, $astraPath); - } - - - } - - public function getRootApiFilePath() - { - $folderPath = $this->getBasePath(); - - if ($folderPath == false || !file_exists($folderPath)) { - return false; - } - - $astraPath = rtrim($folderPath, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . 'astra' . DIRECTORY_SEPARATOR; - return $astraPath . 'api.php'; - } - - public function getRootApiFileUri() - { - $folderPath = $this->getBasePath(); - - if ($folderPath == false || !file_exists($folderPath)) { - return false; - } - - $astraPath = rtrim($folderPath, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . 'astra' . DIRECTORY_SEPARATOR; - $astraPath = str_replace('\\', '/', $astraPath); - - return $astraPath . 'api.php'; - } - - public function getRealApiFileUri(){ - - } - - public function createFiles($folderPath, $astraPath) - { - - $dir = $this->processPath(dirname(__DIR__)); - - $files = array('api.php', 'ak.php', 'gk.php'); - $relPath = $this->getRelativePluginFolderPath(); - - foreach ($files as $file) { - $content = ""; - $content = <<filesCreated = true; - } - - } - } - - public function getRelativePluginFolderPath() - { - $base = $this->getBasePath(); - $dir = $this->processPath(__DIR__); - $rel = dirname(str_replace($base, "", $dir)); - - return $rel; - } - - protected function processPath($path) - { - $isBitnami = strpos($path, "bitnami") !== false; - $isOpt = strpos($path, "/opt/") !== false; - - if ($isBitnami && !$isOpt) { - return DIRECTORY_SEPARATOR . 'opt' . DIRECTORY_SEPARATOR . ltrim($path, DIRECTORY_SEPARATOR); - } - - return $path; - } - - public function getBasePath() - { - - if (!empty($basePath)) { - return $basePath; - } - - $path = $this->processPath(__FILE__); - - $basePath = ""; - $possibleBreakWords = array('/wp-content/', '/catalog/controller/extension/', '/sites/all/modules/', '/modules/', '/app/code/', '/astra/'); - - foreach ($possibleBreakWords as $word) { - if (strpos($path, $word) !== false) { - $basePath = strstr($path, $word, true) . DIRECTORY_SEPARATOR; - break; - } - } - - if (empty($basePath)) { - $basePath = false; - } - - $this->basePath = $basePath; - - return $basePath; - } - -} \ No newline at end of file diff --git a/libraries/Bad_bots.php b/libraries/Bad_bots.php deleted file mode 100644 index 333513f..0000000 --- a/libraries/Bad_bots.php +++ /dev/null @@ -1,108 +0,0 @@ -user_agent = $ua; - $this->ip_address = $ip; - $this->search_engine = array( - 'google' => false, - 'bing' => false, - ); - } - - public function is_search_engine(){ - - return $this->is_google_bot() || $this->is_bing_bot(); - } - - public function is_bing_bot(){ - if(!strstr(strtolower($this->user_agent), "bingbot")){ - return FALSE; - } - - if(filter_var($this->ip_address, FILTER_VALIDATE_IP) === false){ - return FALSE; - } - - - $host = gethostbyaddr($this->ip_address); - - $allowed_domains = array("msn.com"); - $domain = $this->get_host($host); - - if(!in_array($domain, $allowed_domains)){ - $this->is_fake_bot = TRUE; - return FALSE; - } - - $forward_ip = gethostbyname($host); - - if($forward_ip === $this->ip_address){ - return TRUE; - } - - return FALSE; - - } - - public function is_google_bot(){ - //Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) - if(!strstr(strtolower($this->user_agent), "googlebot")){ - return FALSE; - } - - return $this->verify_google_bot(); - } - - public function is_fake_bot(){ - return $this->is_fake_bot; - } - - protected function verify_google_bot(){ - - if(filter_var($this->ip_address, FILTER_VALIDATE_IP) === false){ - return FALSE; - } - - $host = gethostbyaddr($this->ip_address); - - $allowed_domains = array("google.com", "googlebot.com", "googleusercontent.com"); - $domain = $this->get_host($host); - - if(!in_array($domain, $allowed_domains)){ - //ip-returns-other-domain - $this->is_fake_bot = TRUE; - return FALSE; - } - - $forward_ip = gethostbyname($host); - - if($forward_ip === $this->ip_address){ - return TRUE; - } - - return FALSE; - } - - protected function get_host($host_with_subdomain) { - $array = explode(".", $host_with_subdomain); - return (array_key_exists(count($array) - 2, $array) ? $array[count($array) - 2] : "").".".$array[count($array) - 1]; - } - - public function run() { - - } - } -} -?> \ No newline at end of file diff --git a/libraries/Config_file.php b/libraries/Config_file.php deleted file mode 100644 index d9c7755..0000000 --- a/libraries/Config_file.php +++ /dev/null @@ -1,18 +0,0 @@ -_autoload_config(); - } - - protected function _autoload_config() - { - $rows = ASTRA::$_db->get_config_autoload(); - foreach($rows as $row){ - $this->_config[$row['config_key']] = $row['config_value']; - } - } - - function get_config($data) - { - if(isset($this->_config[$data['key']])){ - return $this->_config[$data['key']]; - } - - $key_value = ASTRA::$_db->get_config($data['key']); - - $this->_config[$data['key']] = $key_value; - return $key_value; - } - - function add_config($data) - { - $key_value = ASTRA::$_db->add_config($data['key'],$data['value'],$data['autoload']); - - return $key_value; - } - - function add_config_value($data) - { - $key_value = ASTRA::$_db->add_config_value($data['key'],$data['value']); - - return $key_value; - } - - function delete_config($data) - { - - $key_value = ASTRA::$_db->delete_config($data['key'],$data['value']); - - return $key_value; - } - - function delete_config_value($data) - { - - $key_value = ASTRA::$_db->delete_config_value($data['key'],$data['value']); - - return $key_value; - } - - function update_config($data) - { - $key_value = ASTRA::$_db->update_config($data['key'],$data['value'],$data['autoload']); - - return $key_value; - } - - function update_country($data) - { - $key_value = ASTRA::$_db->update_country($data['key'],$data['value']); - - return $key_value; - } - } -} \ No newline at end of file diff --git a/libraries/Crypto.php b/libraries/Crypto.php deleted file mode 100644 index c56e1a5..0000000 --- a/libraries/Crypto.php +++ /dev/null @@ -1,71 +0,0 @@ -pkcs5_pad($plainText, $ivsize); - $secretKey = $this->hextobin(md5($key)); - $initVector = pack("C*", 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f); - - $ciphertext = openssl_encrypt( - $plainPad, - 'AES-128-CBC', - $secretKey, - OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, - $initVector - ); - - return bin2hex($ciphertext); - - } - - function decrypt($encryptedText, $key) - { - $secretKey = $this->hextobin(md5($key)); - $initVector = pack("C*", 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f); - $encryptedText = $this->hextobin($encryptedText); - - $decryptedText = openssl_decrypt( - $encryptedText, - 'AES-128-CBC', - $secretKey, - OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, - $initVector - ); - - - $decryptedText = rtrim($decryptedText, "\0"); - return $decryptedText; - } - - //*********** Padding Function ********************* - - protected function pkcs5_pad($plainText, $blockSize) - { - $pad = $blockSize - (strlen($plainText) % $blockSize); - return $plainText . str_repeat(chr($pad), $pad); - } - -//********** Hexadecimal to Binary function for php 4.0 version ******** - - protected function hextobin($hexString) - { - $length = strlen($hexString); - $binString = ""; - $count = 0; - while ($count < $length) { - $subString = substr($hexString, $count, 2); - $packedString = pack("H*", $subString); - if ($count == 0) { - $binString = $packedString; - } else { - $binString .= $packedString; - } - - $count += 2; - } - return $binString; - } -} \ No newline at end of file diff --git a/libraries/PHPIDS.php b/libraries/PHPIDS.php deleted file mode 100644 index a7f05fd..0000000 --- a/libraries/PHPIDS.php +++ /dev/null @@ -1,276 +0,0 @@ -run(); - } - - - protected function encode_items(&$item, $key) - { - $orig = $item; - - //$item = iconv("UTF-8", "ASCII//IGNORE", $item); - $item = iconv("UTF-8", "ISO-8859-1//IGNORE", $item); - - - if ($orig !== $item) { - $item = preg_replace('/[^a-zA-Z0-9]/', '', $item); - $item = str_replace("--", "", $item); - } - } - - protected function get_scan_array() - { - $keys_to_scan = defined('CZ_SCAN_ARRAYS') ? explode(',', CZ_SCAN_ARRAYS) : array('GET', 'POST'); - - $request = array(); - - if (in_array('GET', $keys_to_scan)) { - $request['GET'] = $_GET; - } - - if (in_array('POST', $keys_to_scan)) { - $request['POST'] = $_POST; - } - - if (in_array('REQUEST', $keys_to_scan)) { - $request['REQUEST'] = $_REQUEST; - } - - if (in_array('COOKIE', $keys_to_scan)) { - $request['COOKIE'] = $_COOKIE; - } - - return $request; - } - - protected function is_monitoring_mode($keys_to_scan, $param) - { - $which_key = strtok($param, '.'); - return !in_array($which_key, $keys_to_scan); - } - - public function run() - { - if (file_exists(dirname(__FILE__) . '/plugins/IDS/Init.php')) { - require_once(dirname(__FILE__) . '/plugins/IDS/Init.php'); - require_once(dirname(__FILE__) . '/plugins/IDS/Monitor.php'); - } else { - return FALSE; - } - - try { - - $request = $this->get_scan_array(); - -// $request = array( -// 'GET' => $_GET, -// 'POST' => $_POST, -// ); - - if (defined('CZ_ALLOW_FOREIGN_CHARS') && CZ_ALLOW_FOREIGN_CHARS == TRUE) { - array_walk_recursive($request, array($this, 'encode_items')); - } - - $tmpFolderPath = ASTRAPATH . 'libraries/plugins/IDS/Config/Config.ini.php'; - - if (!is_writable($tmpFolderPath)) { - //chmod($tmpFolderPath, 0775); - } - - $init = IDS_Init::init(ASTRAPATH . 'libraries/plugins/IDS/Config/Config.ini.php'); - $init->config['General']['base_path'] = ASTRAPATH . 'libraries/plugins/IDS/'; - $init->config['General']['use_base_path'] = true; - $init->config['Caching']['caching'] = 'none'; - - $exceptions = $this->get_exceptions($request); - - $ids = new IDS_Monitor($request, $init); - $ids->setExceptions($exceptions['exceptions']); - $ids->setHtml($exceptions['html']); - $ids->setJson($exceptions['json']); - echo_debug('IDS Initialized'); - $result = $ids->run(); - echo_debug('IDS has run'); - - if (!$result->isEmpty()) { - - if ($result->getImpact() < 10) { - return true; - } - - echo_debug('IDS found issues. Will do +1 now.'); - //Increment Hack Attempt Count - - $str_tags = ""; - $dataArray = array(); - - foreach ($result->getTags() as $tag) - $str_tags .= '|' . $tag; - - $iterator = $result->getIterator(); - - $param = ""; - $attack_param = null; - - $is_monitoring = true; - -// $keys_to_scan = defined('CZ_SCAN_ARRAYS') ? explode(',', CZ_SCAN_ARRAYS) : array('GET', 'POST'); - - foreach ($iterator as $threat) { - - $param = urlencode($threat->getName()); - - /*if (!$this->is_monitoring_mode($keys_to_scan, $param)) { - $is_monitoring = false; - }*/ - - if (CZ_ASTRA_MODE == 'monitor') { - $is_monitoring = TRUE; - } else { - $is_monitoring = FALSE; - } - - $attack_param[] = urlencode($threat->getName()); - $param .= "p=" . urlencode($threat->getName()) . "|v=" . urlencode($threat->getValue()); - $param .= "|id="; - - foreach ($threat->getFilters() as $filter) { - $param .= $filter->getId() . ","; - } - $param = rtrim($param, ',') . "#"; - } - - if ($is_monitoring) { - $dataArray['blocking'] = 3; - } else { - ASTRA::$_db->log_hit(ASTRA::$_ip); - $dataArray['blocking'] = (ASTRA::$_db->is_blocked_or_trusted(ASTRA::$_ip, false, ASTRA::$_config) == "blocked") ? 2 : 1; - } - - $param = rtrim($param, '#'); - $dataArray['i'] = $result->getImpact(); - $dataArray["tags"] = $str_tags; - $dataArray['param'] = $param; - - require_once(ASTRAPATH . 'libraries/API_connect.php'); - $connect = new API_connect(); - $connect->send_request("ids", $dataArray); - - if (!$is_monitoring) { - ASTRA::show_block_page($attack_param); - } - - } else { - echo_debug('IDS says all is okay'); - } - } catch (Exception $e) { - printf('An error occured: %s', $e->getMessage()); - } - } - - protected function get_exceptions($request = array()) - { - - $data = array('exceptions' => array(), 'json' => array(), 'html' => array()); - $db_params = ASTRA::$_db->get_custom_params(); - - $default_exceptions = array( - 'REQUEST._pk_ref_3_913b', - 'COOKIE._pk_ref_3_913b', - 'REQUEST._lf', - 'REQUEST.comment', - 'POST.comment', - 'REQUEST.permalink_structure', - 'POST.permalink_structure', - 'REQUEST.selection', - 'POST.selection', - 'REQUEST.content', - 'POST.content', - 'REQUEST.__utmz', - 'COOKIE.__utmz', - 'REQUEST.s_pers', - 'COOKIE.s_pers', - 'REQUEST.user_pass', - 'POST.user_pass', - 'REQUEST.pass1', - 'POST.pass1', - 'REQUEST.pass2', - 'POST.pass2', - 'REQUEST.password', - 'POST.password', - 'GET.gclid', - 'GET.access_token', - 'POST.customize', - 'POST.post_data', - 'POST.mail.body', - 'POST.mail.subject', - 'POST.mail.sender', - 'POST.form', - 'POST.customized', - 'POST.partials', - 'GET.mc_id', - 'POST.shortcode', - 'POST.mail_2.body', - 'POST.mail_2.subject', - 'POST.enquiry', - 'POST.pwd', - 'POST.g-recaptcha-response', - 'POST.g-recaptcha-res', - '/POST.state_([0-999]*)$/', - '/POST.input_([0-999]*)$/', - 'POST.form_token', - 'GET.fbclid', - 'POST.itsec_two_factor_on_board_data', - 'GET.mainwpsignature', - 'POST.wp_statistics_hit', - 'POST.customize_messenger_channel', - 'POST.product.media_gallery.values', - 'GET.utm_source', - 'GET.utm_medium', - 'GET.utm_campaign', - 'POST.fl_builder_data.data.settings.content', - '/POST.fl_builder_data.node_preview.items.([0-999]*)$/', - 'POST.fl_builder_data.settings.text', - '/POST.fl_builder_data.*/', - - ); - - - $data['exceptions'] = array_merge($default_exceptions, $db_params['exception']); - $data['html'] = $db_params['html']; - - //if (!defined('CZ_JSON_EXCLUDE_ALL') || CZ_JSON_EXCLUDE_ALL === FALSE) { - // $data['json'] = $db_params['json']; - //} else { - $data['json'] = array(); - - foreach ($request as $array => $keys) { - foreach ($keys as $k => $par) { - $data['json'][] = "$array.$k"; - } - } - - //} - - return $data; - } - -} diff --git a/libraries/SQLite_db.php b/libraries/SQLite_db.php deleted file mode 100644 index eba806a..0000000 --- a/libraries/SQLite_db.php +++ /dev/null @@ -1,1289 +0,0 @@ -_blocking_threshold = $cz_lvl[CZ_CONFIG_LVL]['ip_blocking']['count']; - $this->_blocking_duration = $cz_lvl[CZ_CONFIG_LVL]['ip_blocking']['duration']; - }else{ - $this->_blocking_threshold = 5; - $this->_blocking_duration = 200; - } - - $this->error_logging = CZ_DB_PATH . 'db/logging.err'; - $this->_open_connection(); - } - - private function _open_connection() - { - if ($this->_is_open) { - return; - } - - $this->_db_name = CZ_DB_PATH . 'db/' . CZ_DATABASE_NAME . '.db'; - - echo_debug($this->_db_name); - if (!file_exists($this->_db_name)) { - $create_tables = TRUE; - echo_debug('Creating SQL Tables'); - } else { - $create_tables = FALSE; - echo_debug('Tables have to be created'); - } - - try { - $this->_db = new PDO('sqlite:' . $this->_db_name); - echo_debug('PDO Init'); - if ($create_tables) { - $this->_create_tables(); - } - $this->_is_open = true; - return; - } catch (PDOException $e) { - echo_debug('Unable to init DB'); - file_put_contents($this->error_logging, "cannot initialize database\n", LOCK_EX | FILE_APPEND); - $this->_is_open = false; - $this->_db = null; - return; - } - } - - /** - * - * @return bool - */ - private function _create_tables() - { - try { - $query = array(); - - $query[] = "CREATE TABLE IF NOT EXISTS ip_logs ( - id INTEGER PRIMARY KEY, - ip_address TEXT UNIQUE, - request_count INTEGER DEFAULT 0, - request_count_since_blocking INTEGER DEFAULT 0, - blocked_by_ids INTEGER DEFAULT 0, - blocked_by_user INTEGER DEFAULT 0, - trusted_by_user INTEGER DEFAULT 0, - is_range INTEGER DEFAULT 0, - timestamp INTEGER - );"; - - $query[] = "CREATE TABLE IF NOT EXISTS exception_params ( - id INTEGER PRIMARY KEY, - param TEXT UNIQUE, - type TEXT, - timestamp INTEGER - );"; - - $query[] = "CREATE TABLE IF NOT EXISTS exception_url ( - id INTEGER PRIMARY KEY, - url TEXT UNIQUE, - timestamp INTEGER - );"; - - $query[] = "CREATE TABLE IF NOT EXISTS exception_ip_ranges ( - id INTEGER PRIMARY KEY, - ip_range TEXT UNIQUE, - trusted_by_user INTEGER DEFAULT 0, - timestamp INTEGER - );"; - - $query[] = "CREATE TABLE IF NOT EXISTS bad_bots ( - id INTEGER PRIMARY KEY, - bot TEXT UNIQUE, - from_honeypot INTEGER DEFAULT 0, - timestamp INTEGER - );"; - - $query[] = "CREATE TABLE IF NOT EXISTS token_bucket ( - id INTEGER PRIMARY KEY, - ip_address TEXT UNIQUE, - last_api_request TEXT, - throttle_minute TEXT, - reported INTEGER DEFAULT 0 - );"; - - $query[] = "CREATE TABLE config_options ( - id INTEGER PRIMARY KEY, - config_key TEXT UNIQUE NOT NULL, - config_value TEXT NOT NULL, - autoload INTEGER DEFAULT 0 - );"; - - foreach ($query as $q) - $this->_db->exec($q); - - echo_debug('.htaccess file created'); - return true; - } catch (PDOException $e) { - file_put_contents($this->error_logging, "cannot create tables in db", LOCK_EX | FILE_APPEND); - return false; - } - } - - private function _close_connection() - { - $this->_db = null; - $this->_is_open = false; - echo_debug('Closing connection'); - } - - /** - * @return null - */ - function insert_into_ip_logs($data) - { - if (isset($data)) { - if (!$this->_is_open) { - $this->_open_connection(); - } - - if (isset($data['trusted_by_user'])) { - $query = "INSERT INTO ip_logs (ip_address, request_count, request_count_since_blocking, blocked_by_ids, - blocked_by_user, trusted_by_user, timestamp,is_range) VALUES (:ip_address, :request_count, :request_count_since_blocking, - :blocked_by_ids, :blocked_by_user, :trusted_by_user, strftime('%s', 'now'), :is_range);"; - } else { - $query = "INSERT INTO ip_logs (ip_address, request_count, request_count_since_blocking, blocked_by_ids, - blocked_by_user, timestamp,is_range) VALUES (:ip_address, :request_count, :request_count_since_blocking, - :blocked_by_ids, :blocked_by_user, strftime('%s', 'now'), :is_range);"; - } - //$this->_db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING ); - - $statement = $this->_db->prepare($query); - if (!$statement->execute($data)) { - //var_dump($this->_db->errorInfo()); - file_put_contents($this->error_logging, "\n\ncannot execute query: {$query} {$this->_db->errorInfo()}", LOCK_EX | FILE_APPEND); - return false; - } - - $this->_close_connection(); - return true; - } - } - - function get_ip_log($ip_address) - { - if (isset($ip_address)) { - if (!$this->_is_open) { - $this->_open_connection(); - } - $query = "SELECT * FROM ip_logs WHERE ip_address = :ip_address LIMIT 1;"; - $statement = $this->_db->prepare($query); - $statement->execute(array('ip_address' => $ip_address)); - $statement->setFetchMode(PDO::FETCH_ASSOC); - $result_row = $statement->fetch(); - return $result_row; - } - } - - function unblock_ip($ip_address, $by_user = false, $by_ids = false, $trusted = false) - { - if (isset($ip_address)) { - if (!$this->_is_open) { - $this->_open_connection(); - } - - if ($by_user) { - - if ($trusted) { - $update = ',trusted_by_user = 0'; - } else { - $update = ",blocked_by_user = 0"; - } - } - if ($by_ids) { - $update = ",blocked_by_ids = 0"; - } - - $query = "UPDATE ip_logs SET timestamp = 0 {$update}, request_count = 0 WHERE ip_address = '{$ip_address}';"; - - if (!$this->_db->exec($query)) { - $row = $this->get_ip_log($ip_address); - if (empty($row)) { - return true; - } - - file_put_contents($this->error_logging, "unblock_ip - cannot execute query: {$query}", LOCK_EX | FILE_APPEND); - return false; - } - - $this->_close_connection(); - return TRUE; - } - - return TRUE; - } - - - function is_blocked_or_trusted($ip_address, $is_bot = FALSE, $_config) - { - $this->_config = $_config; - - require_once(ASTRAPATH . 'libraries/plugins/ip_address/ip-lib.php'); - if (isset($ip_address)) { - if (!$this->_is_open) { - $this->_open_connection(); - } - - $query = "SELECT * FROM ip_logs WHERE ip_address = :ip_address;"; - $statement = $this->_db->prepare($query); - - if(!is_object($statement)){ - return ""; - } - - $statement->execute(array('ip_address' => $ip_address)); - $statement->setFetchMode(PDO::FETCH_ASSOC); - $result = $statement->fetch(); // this returns false in case of no rows matched. - - if(empty($result) || ($result['blocked_by_ids'] == '0' && $result['blocked_by_user'] == '0' && $result['trusted_by_user'] == '0')) - { - $rangeQuery = "select * from ip_logs where is_range = 1"; - $rangeStatement = $this->_db->prepare($rangeQuery); - $rangeStatement->execute(); - $rangeStatement->setFetchMode(PDO::FETCH_ASSOC); - $rangeResult = $rangeStatement->fetchAll(); - - if(!empty($rangeResult)) - { - return $this->range_blocking($ip_address, $is_bot,$rangeResult); - } - - return $this->country_blocking($ip_address); - } - else - { - return $this->ip_blocking($ip_address, $is_bot,$result); - } - } - } - - function ip_blocking($ip_address, $is_bot,$result) - { - if ($result['trusted_by_user'] == 1) - return "trusted"; - - if ($result['blocked_by_user'] == 1) { - return "blocked"; - } - - //$this->_blocking_duration = 0.1; - - if ($is_bot) { - $duration = 200; - } else { - $duration = $this->_blocking_duration; - } - - if ($result['blocked_by_ids'] == 1) { - if (time() - $result['timestamp'] >= $duration * 60) { - $this->unblock_ip($ip_address, false, true); - return "unblocked"; - } - return "blocked"; - } - - // Country blocking checks - $this->country_blocking($ip_address); - } - - protected function country_blocking($ip_address) - { - $blocked_countries = json_decode($this->_config->get_config(array('key' => 'country_blocked'))); - $trusted_countries = json_decode($this->_config->get_config(array('key' => 'country_trusted'))); - - if(!empty($blocked_countries) || !empty($trusted_countries)) - { - require_once(ASTRAPATH . 'libraries/Astra_country.php'); - $country_library = new Astra_country(); - - $visitor_country = $country_library->get_country($ip_address); - - if(is_array($blocked_countries)) - { - if(in_array($visitor_country,$blocked_countries)) - return "blocked"; - } - else - { - if($visitor_country == $blocked_countries) - return "blocked"; - } - - if(is_array($trusted_countries)) - { - if(in_array($visitor_country,$trusted_countries)) - return "trusted"; - } - else - { - if($visitor_country == $trusted_countries) - return "trusted"; - } - } - } - - function range_blocking($ip_address, $is_bot, $result) - { - $_ip = \IPLib\Factory::addressFromString($ip_address); - $contained = null; - foreach($result as $data) - { - $_range = \IPLib\Factory::rangeFromString($data['ip_address']); - $contained = $_ip->matches($_range); // returns false if the range is ipv6 and ip is of ipv4 and vice-versa - if($contained) - { - return $this->ip_blocking($ip_address, $is_bot,$data); - } - } - } - - function is_bad_bot($user_agent) - { - if (isset($user_agent)) { - if (!$this->_is_open) { - $this->_open_connection(); - } - - try { - $query = "SELECT * FROM bad_bots WHERE '{$user_agent}' LIKE '%' || bot || '%';"; - - $statement = $this->_db->prepare($query); - - if(!is_object($statement)){ - return false; - } - - if ($statement->execute()) { - $statement->setFetchMode(PDO::FETCH_ASSOC); - $result = $statement->fetch(); - //print_r($result); - - if (!empty($result)) { - return TRUE; - } - } - return FALSE; - } catch (PDOException $e) { - return FALSE; - } - } - } - - protected function truncate_table($table_name) - { - try { - - $this->_db->beginTransaction(); - - $query = array(); - $query[] = "DELETE from {$table_name};"; - $query[] = "VACUUM;"; - - foreach ($query as $q) { - $stmt = $this->_db->prepare($q); - $stmt->execute(); - } - - $this->_db->commit(); - - return TRUE; - } catch (PDOException $e) { - return FALSE; - } - } - - function update_bad_bots($bots) - { - if (isset($bots)) { - echo_debug('Bots are set'); - if (!$this->_is_open) { - $this->_open_connection(); - } - - try { - - if ($this->truncate_table('bad_bots')) { - - $this->_db->beginTransaction(); - $query = $this->_db->prepare("INSERT INTO bad_bots (bot, timestamp) VALUES (?, strftime('%s', 'now'))"); - foreach ($bots as $bot) { - $query->bindParam(1, $bot); - $query->execute(); - } - $this->_db->commit(); - echo_debug('BOTS Updated'); - return TRUE; - } else { - echo_debug('Unable to truncate BOTS Table'); - return FALSE; - } - } catch (PDOException $e) { - echo_debug('PDO Error while updating BOTS'); - return FALSE; - } - } else { - echo_debug('Bots not set'); - } - } - - function update_custom_params($params) - { - if (isset($params)) { - if (!$this->_is_open) { - $this->_open_connection(); - } - - if (empty($params)) { - return TRUE; - } - try { - - if ($this->truncate_table('exception_params')) { - - $this->_db->beginTransaction(); - $query = $this->_db->prepare("INSERT INTO exception_params (param, type, timestamp) VALUES (?, ?, strftime('%s', 'now'))"); - foreach ($params as $p) { - $query->bindParam(1, $p[1]); - $query->bindParam(2, $p[0]); - $query->execute(); - } - $this->_db->commit(); - - return TRUE; - } else { - return FALSE; - } - } catch (PDOException $e) { - return FALSE; - } - } else { - return FALSE; - } - } - - function update_custom_ip($ips) - { - if (isset($ips)) { - if (!$this->_is_open) { - $this->_open_connection(); - } - try { - - if (!empty($ips)) { - //$this->_db->beginTransaction(); - foreach ($ips as $ip) { - $type_bool = ($ip[0] == "trusted") ? TRUE : FALSE; - $this->update_ip_logs($ip[1], TRUE, $type_bool); - } - //$this->_db->commit(); - return TRUE; - } else { - return TRUE; - } - } catch (PDOException $e) { - return FALSE; - } - } - } - - function update_ip_logs($ip_address, $user = false, $trusted = FALSE, $is_bot = FALSE) - { - require_once(ASTRAPATH . 'libraries/plugins/ip_address/ip-lib.php'); - if (isset($ip_address)) { - if (!$this->_is_open) { - $this->_open_connection(); - } - - $data = array('ip_address' => $ip_address); - - if ($is_bot) { - $threshold = $cz_lvl[CZ_CONFIG_LVL]['bot_blocking']['count']; - } else { - $threshold = $this->_blocking_threshold; - } - - $field = "blocked_by_ids"; - $conditions = "AND request_count >={$threshold}"; - $_range = $this->is_valid_range($ip_address); - - if ($user) { - $row = $this->get_ip_log($ip_address); - if (empty($row)) { - $data = array( - 'ip_address' => $ip_address, - 'request_count' => 0, - 'request_count_since_blocking' => 0, - 'blocked_by_ids' => 0, - 'blocked_by_user' => ($trusted) ? 0 : 1, - 'trusted_by_user' => (int)$trusted, - 'is_range' => ($_range == false)? 0:1 - ); - return $this->insert_into_ip_logs($data); - } - - if (!$trusted) { - $field = "trusted_by_user=0, blocked_by_user"; - $conditions = ""; - } else { - $field = "blocked_by_user=0, trusted_by_user"; - $conditions = ""; - } - } - - $query = "UPDATE ip_logs SET {$field} = 1, timestamp = strftime('%s', 'now'), request_count_since_blocking=request_count_since_blocking+1 WHERE ip_address = :ip_address {$conditions};"; - - - $statement = $this->_db->prepare($query); - - if ($statement->execute($data)) { - $this->_close_connection(); - return TRUE; - } else { - file_put_contents($this->error_logging, "cannot execute query: {$query}", LOCK_EX | FILE_APPEND); - return FALSE; - } - } - } - - function is_valid_range($ip_address) - { - require_once(ASTRAPATH . 'libraries/plugins/ip_address/ip-lib.php'); - - $_range = \IPLib\Factory::rangeFromString($ip_address); - - if(!is_object($_range)){ - return false; - } - - if((string)$_range->getStartAddress() === (string)$_range->getEndAddress()) - $_range = false; - else - $_range = true; - - return $_range; - } - - function log_hit($ip_address, $blocked = false) - { - if (isset($ip_address)) { - $_range = $this->is_valid_range($ip_address); - $row = $this->get_ip_log($ip_address); - if (empty($row)) { - $data = array( - 'ip_address' => $ip_address, - 'request_count' => 0, - 'request_count_since_blocking' => 0, - 'blocked_by_ids' => 0, - 'blocked_by_user' => 0, - 'is_range' => ($_range == false)? 0:1 - ); - $this->insert_into_ip_logs($data); - } - - if (!$this->_is_open) { - $this->_open_connection(); - } - - if ($blocked) { - $field = "request_count_since_blocking"; - } else { - $field = "request_count"; - } - - $query = "UPDATE ip_logs SET {$field} = {$field} + 1 WHERE ip_address = '{$ip_address}'"; - $statement = $this->_db->prepare($query); - - if ($statement->execute()) { - $this->update_ip_logs($ip_address); - $this->_close_connection(); - return true; - } else { - file_put_contents($this->error_logging, "cannot execute update query: {$query}", LOCK_EX | FILE_APPEND); - return false; - } - } - } - - function insert_into_table($table_name, $data, $timestamp = TRUE) - { - if (isset($data)) { - if (!$this->_is_open) { - $this->_open_connection(); - } - - - try { - $columns = ""; - $values = ""; - foreach ($data as $key => $val) { - $columns .= $key . ', '; - $values .= ':' . $key . ', '; - } - - if ($timestamp) { - $query = "INSERT INTO {$table_name} ({$columns}timestamp) VALUES ({$values}strftime('%s', 'now'));"; - } else { - $columns = rtrim($columns, ', '); - $values = rtrim($values, ', '); - $query = "INSERT INTO {$table_name} ({$columns}) VALUES ({$values});"; - } - - echo_debug($query); - - //echo $query; - - $statement = $this->_db->prepare($query); - - $statement->execute($data); - } catch (PDOException $e) { - if ($e->errorInfo[1] == 1062) { - return TRUE; - } - - file_put_contents($this->error_logging, "cannot execute query: {$query}", LOCK_EX | FILE_APPEND); - return false; - } - $this->_close_connection(); - return true; - } - } - - function delete_from_table($table_name, $data) - { - if (!empty($data)) { - if (!$this->_is_open) { - $this->_open_connection(); - } - - - try { - $where = ""; - foreach ($data as $key => $val) { - $where .= "$key='$val' AND "; - } - - $where = rtrim($where, ' AND '); - echo_debug($where); - - $query = "DELETE FROM {$table_name} WHERE {$where};"; - - echo_debug($query); - - $statement = $this->_db->prepare($query); - $res = $statement->execute(array()); - echo_debug('RES=' . $res . ';'); - if ($res) { - return true; - } else { - return false; - } - } catch (PDOException $e) { - if ($e->errorInfo[1] == 1062) { - return TRUE; - } - - file_put_contents($this->error_logging, "cannot execute query: {$query}", LOCK_EX | FILE_APPEND); - return false; - } - $this->_close_connection(); - return true; - } - } - - function edit_ip_exception($action, $type, $ip) - { -//update_ip_logs($ip_address, $user = false, $trusted = FALSE) { - - $type_bool = ($type == "trusted") ? TRUE : FALSE; - - if ($action == "add") { - return $this->update_ip_logs($ip, TRUE, $type_bool); -//function update_ip_logs($ip_address, $user = false, $trusted = FALSE) { - } elseif ($action == "delete") { - return $this->unblock_ip($ip, TRUE, FALSE, $type_bool); - } else { - return FALSE; - } - } - - function edit_param_exception($action, $type, $val) - { - //$type_bool = ($type == "trusted") ? TRUE : FALSE; - - if ($action == "add") { - $data = array( - 'type' => $type, - 'param' => $val, - ); - - return $this->insert_into_table('exception_params', $data); - } elseif ($action == "delete") { - echo_debug(json_encode($this->get_custom_params())); - $data = array( - 'type' => $type, - 'param' => $val, - ); - return $this->delete_from_table('exception_params', $data); - } else { - return FALSE; - } - } - - function get_api_request($ip_address) - { - if (isset($ip_address)) { - if (!$this->_is_open) { - $this->_open_connection(); - } - - $query = "SELECT * FROM token_bucket WHERE ip_address = :ip_address LIMIT 1;"; - $statement = $this->_db->prepare($query); - $statement->execute(array('ip_address' => $ip_address)); - $statement->setFetchMode(PDO::FETCH_ASSOC); - $result_row = $statement->fetch(); - - if (empty($result_row)) { - $ret = array( - 'last_api_request' => time(), - 'throttle_minute' => 0, - 'ip_address' => $ip_address, - 'reported' => 0 - ); - - $this->insert_into_table('token_bucket', $ret, FALSE); - - return $ret; - } else { - return $result_row; - } - } - return FALSE; - } - - function save_api_request($ip_address, $last_api_request, $throttle_minute, $reported) - { - if (isset($ip_address) && isset($last_api_request) && isset($throttle_minute) && isset($reported)) { - if (!$this->_is_open) { - $this->_open_connection(); - } - - $query = "UPDATE token_bucket SET last_api_request = :last_api_request, throttle_minute=:throttle_minute, reported=:reported WHERE ip_address = :ip_address;"; - - $data = array( - 'ip_address' => $ip_address, - 'last_api_request' => $last_api_request, - 'throttle_minute' => $throttle_minute, - 'reported' => $reported, - ); - - $statement = $this->_db->prepare($query); - - if (!$statement->execute($data)) { - file_put_contents($this->error_logging, "Save_api_request - cannot execute query: {$query}", LOCK_EX | FILE_APPEND); - return false; - } - $this->_close_connection(); - return TRUE; - } - } - - function block_bot($ip_address) - { - if (isset($ip_address)) { - return $this->update_ip_logs($ip_address, FALSE, FALSE, TRUE); - } - return FALSE; - } - - function get_exception_urls() - { - if (!$this->_is_open) { - $this->_open_connection(); - } - - $query = "SELECT * FROM exception_url;"; - - $statement = $this->_db->prepare($query); - $statement->execute(); - $statement->setFetchMode(PDO::FETCH_ASSOC); - - $result_rows = $statement->fetchAll(); - - $ret = array(); - - foreach ($result_rows as $row) { - $ret[] = $row['url']; - } - - return $ret; - } - - function get_custom_params() - { - if (!$this->_is_open) { - $this->_open_connection(); - } - - $query = "SELECT type, param FROM exception_params;"; - - $statement = $this->_db->prepare($query); - $statement->execute(); - $statement->setFetchMode(PDO::FETCH_ASSOC); - - $result_rows = $statement->fetchAll(); - - $ret = array( - 'html' => array(), - 'json' => array(), - 'exception' => array(), - 'url' => array(), - ); - - foreach ($result_rows as $row) { - $ret[$row['type']][] = $row['param']; - } - - return $ret; - } - - function get_config($key = '') - { - if (!$this->_is_open) { - $this->_open_connection(); - } - - if(empty($key)) - { - $query = "SELECT * FROM config_options"; - } - else - { - $query = "SELECT config_value FROM config_options where config_key = :config_key"; - $data = array('config_key' => $key); - } - - $statement = $this->_db->prepare($query); - $statement->setFetchMode(PDO::FETCH_ASSOC); - - if(empty($key)) - { - $statement->execute(); - $result_rows = $statement->fetchAll(); - } - else - { - $statement->execute($data); - $result_rows = $statement->fetch(); - } - - if($result_rows == false) - return false; - - return $result_rows['config_value']; - } - - function get_config_autoload() - { - if (!$this->_is_open) { - $this->_open_connection(); - } - - $query = "SELECT * FROM config_options WHERE autoload = 1"; - - $statement = $this->_db->prepare($query); - - if(!is_object($statement)){ - return array(); - } - - $statement->setFetchMode(PDO::FETCH_ASSOC); - - $statement->execute(); - $result_rows = $statement->fetchAll(); - - if($result_rows == false) - return array(); - - return $result_rows; - } - - function add_config($key,$value,$autoload) - { - if (!$this->_is_open) { - $this->_open_connection(); - } - $key_data = null; - $temp_data = null; - - $_is_key_exist = $this->get_config($key); - - if($_is_key_exist !== false) - { - return $this->add_config_value($key,$value); - } - elseif($_is_key_exist == false) - { - $query = "INSERT INTO config_options (config_key, config_value, autoload) VALUES (:config_key, :config_value, :autoload);"; - $data = array( - "config_key" => $key, - "config_value" => json_encode($value), - "autoload" => $autoload - ); - $statement = $this->_db->prepare($query); - $exe_query = $statement->execute($data); - if (!$exe_query) { - file_put_contents($this->error_logging, "\n\ncannot execute query: {$query} {$this->_db->errorInfo()}", LOCK_EX | FILE_APPEND); - return false; - } - $this->_close_connection(); - return true; - } - } - - function is_value_exist($key,$value) - { - if (!$this->_is_open) { - $this->_open_connection(); - } - - $query = "SELECT config_value FROM config_options where config_key = :config_key"; - $data = array( - 'config_key' => $key - ); - $statement = $this->_db->prepare($query); - $statement->setFetchMode(PDO::FETCH_ASSOC); - $statement->execute($data); - $result_rows = $statement->fetch(); - - // $this->_db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING ); - // var_dump($this->_db->errorInfo()); - - if($result_rows == false) - return false; - else - { - $config_value = json_decode($result_rows['config_value']); - if(is_array($config_value)) - { - foreach($config_value as $item) - { - if($value == $item) - { - return true; - } - } - return false; - } - else - { - if($value == $config_value) - return true; - else - return false; - } - } - } - - function add_config_value($key,$value) - { - $key_value_array = null; - $temp_data = null; - $update_data = null; - - if($this->is_value_exist($key,$value)) - return true; - else - $key_data = $this->get_config($key); - - $decode_data = json_decode($key_data); - - if(empty($decode_data)) - { - $query = "Update config_options set config_value = :config_value where config_key = :config_key"; - $update_data = array( - "config_key" => $key, - "config_value" => json_encode($value) - ); - } - else - { - $key_value_array = json_decode($key_data); - - if(is_array($value)) - { - if(is_array($key_value_array)) - { - foreach($value as $item) - { - if(!in_array($item,$key_value_array)) - $key_value_array[] = $item; - } - } - else - { - $temp_data[] = $key_value_array; - foreach($value as $item) - { - $temp_data[] = $item; - } - } - unset($key_value_array); - $key_value_array = $temp_data; - } - else - { - if(is_array($key_value_array)) - { - $key_value_array[] = $value; - } - else - { - $temp_data[] = $key_value_array; - $temp_data[] = $value; - unset($key_value_array); - $key_value_array = $temp_data; - } - } - - $query = "Update config_options set config_value = :config_value where config_key = :config_key"; - $update_data = array( - "config_key" => $key, - "config_value" => json_encode($key_value_array) - ); - } - - $statement = $this->_db->prepare($query); - $exe_query = $statement->execute($update_data); - if (!$exe_query) { - file_put_contents($this->error_logging, "\n\ncannot execute query: {$query} {$this->_db->errorInfo()}", LOCK_EX | FILE_APPEND); - return false; - } - $this->_close_connection(); - return true; - - } - - function delete_config($key,$value) - { - if (!$this->_is_open) { - $this->_open_connection(); - } - - $key_data = $this->get_config($key); - if($key_data == false) - { - return false; - } - elseif(empty($value)) - { - $query = "DELETE from config_options where config_key = :config_key"; - $data = array( - "config_key" => $key - ); - - $statement = $this->_db->prepare($query); - $exe_query = $statement->execute($data); - if (!$exe_query) { - file_put_contents($this->error_logging, "\n\ncannot execute query: {$query} {$this->_db->errorInfo()}", LOCK_EX | FILE_APPEND); - return false; - } - } - else - { - $this->delete_config_value($key,$value); - } - $this->_close_connection(); - return true; - } - - function delete_config_value($key,$value) - { - $query = "SELECT config_value FROM config_options where config_key = :config_key"; - $data = array('config_key' => $key); - - $statement = $this->_db->prepare($query); - $exe_query_select = $statement->execute($data); - $result_rows = $statement->fetch(); - - $config_value = json_decode($result_rows['config_value'],true); - if(is_array($config_value)) - { - $delete_key = array_search($value,$config_value); - unset($config_value[$delete_key]); - $data = array( - "config_key" => $key, - "config_value" => json_encode(array_values($config_value)) - ); - } - else - { - $config_value = ""; - $data = array( - "config_key" => $key, - "config_value" => json_encode($config_value) - ); - } - - if(!$exe_query_select) - { - file_put_contents($this->error_logging, "\n\ncannot execute query: {$query} {$this->_db->errorInfo()}", LOCK_EX | FILE_APPEND); - return false; - } - else - { - $query = "Update config_options set config_value = :config_value where config_key = :config_key"; - $statement = $this->_db->prepare($query); - $exe_query_update = $statement->execute($data); - - if (!$exe_query_update) { - file_put_contents($this->error_logging, "\n\ncannot execute query: {$query} {$this->_db->errorInfo()}", LOCK_EX | FILE_APPEND); - return false; - } - } - $this->_close_connection(); - return true; - - } - - function update_config($key,$newkey,$autoload) - { - if (!$this->_is_open) { - $this->_open_connection(); - } - - $key_data = $this->get_config($key); - if($key_data == false) - { - return false; - } - else - { - if(empty($newkey)) - { - $query = "update config_options set autoload = :autoload where config_key = :config_key"; - $data = array( - 'autoload' => $autoload, - 'config_key' => $key - ); - } - else - { - $query = "update config_options set config_key = :config_new_key,autoload = :autoload where config_key = :config_key"; - $data = array( - 'config_new_key' => $newkey, - 'config_key' => $key, - 'autoload' => $autoload - ); - } - - // $this->_db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING ); - - $statement = $this->_db->prepare($query); - $exe_query = $statement->execute($data); - if (!$exe_query) { - file_put_contents($this->error_logging, "\n\ncannot execute query: {$query} {$this->_db->errorInfo()}", LOCK_EX | FILE_APPEND); - return false; - } - $this->_close_connection(); - return true; - } - } - - function update_country($key,$value) - { - if (!$this->_is_open) { - $this->_open_connection(); - } - - if($key == "country_trusted") - { - $delete_key = $this->delete_config_value("country_blocked",$value); - - if($delete_key) - { - return $this->add_config_value("country_trusted",$value); - } - else - return $delete_key; - } - elseif($key == "country_blocked") - { - $delete_key = $this->delete_config_value("country_trusted",$value); - - if($delete_key) - { - return $this->add_config_value("country_blocked",$value); - } - else - return $delete_key; - } - } - } - -} \ No newline at end of file diff --git a/libraries/Token_bucket.php b/libraries/Token_bucket.php deleted file mode 100644 index fc9ac93..0000000 --- a/libraries/Token_bucket.php +++ /dev/null @@ -1,76 +0,0 @@ -get_api_request(ASTRA::$_ip); - - //print_r($get_api_request); - - $last_api_request = $get_api_request['last_api_request']; # get from the DB; in epoch seconds - $last_api_diff = time() - $last_api_request; # in seconds - $minute_throttle = $get_api_request['throttle_minute']; # get from the DB - $reported = isset($get_api_request['reported']) ? $get_api_request['reported'] : 0; - - if (is_null(self::$_minute_limit)) { - $new_minute_throttle = 0; - } else { - $new_minute_throttle = $minute_throttle - $last_api_diff; - $new_minute_throttle = $new_minute_throttle < 0 ? 0 : $new_minute_throttle; - $new_minute_throttle += self::$_minute / self::$_minute_limit; - $minute_hits_remaining = floor(( self::$_minute - $new_minute_throttle ) * self::$_minute_limit / self::$_minute); - # can output this value with the request if desired: - $minute_hits_remaining = $minute_hits_remaining >= 0 ? $minute_hits_remaining : 0; - $reported = 0; - } - - if ($new_minute_throttle > self::$_minute) { - $wait = ceil($new_minute_throttle - self::$_minute); - if (!$reported) { - /* Send API hit */ - require_once(ASTRAPATH . 'libraries/API_connect.php'); - $connect = new API_connect(); - $reported = (int) $connect->send_request("token_bucket", array('blocking' => 2)); - } - usleep(250000); - /**/ - - die('The one-minute Request limit of ' . self::$_minute_limit . ' requests has been exceeded. Please wait ' . $wait . ' seconds before attempting again.'); - } - - # Save the values back to the database. - $data = array( - 'last_api_request' => time(), - ); - - ASTRA::$_db->save_api_request(ASTRA::$_ip, time(), $new_minute_throttle, $reported); - } - - } - -} \ No newline at end of file diff --git a/libraries/Update_DB.php b/libraries/Update_DB.php deleted file mode 100644 index 15ee810..0000000 --- a/libraries/Update_DB.php +++ /dev/null @@ -1,111 +0,0 @@ -run(); - echo_debug('Constructor DB'); - } - - protected function is_request_from_astra(){ - $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? strtolower($_SERVER['HTTP_USER_AGENT']) : "empty"; - - if(strpos($user_agent, "astra") !== false){ - return true; - } - - if(file_exists(ASTRAPATH . 'db/astra-setup.flag')){ - return true; - } - - return false; - } - - protected function make_request() { - - - if($this->is_request_from_astra()){ - return false; - } - - require_once(ASTRAPATH . 'libraries/Crypto.php'); - - echo_debug('cURLing to ' . CZ_API_URL); - - $dataArray['client_key'] = CZ_CLIENT_KEY; - $dataArray['api'] = "get_db"; - - $str = serialize($dataArray); - $crypto = new Astra_crypto(); - $encrypted_data = $crypto->encrypt($str, CZ_SECRET_KEY); - - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, CZ_API_URL); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, "encRequest=" . $encrypted_data . "&access_code=" . CZ_ACCESS_KEY); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); - curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); - - $output = curl_exec($ch); - echo_debug('cURL Executed'); - - echo_debug('cURL Error >> ' . curl_error($ch)); - echo_debug("
$output
"); - - $errors = curl_error($ch); - curl_close($ch); - - if ($errors) { - return FALSE; - } else { - return $output; - } - } - - function run() { - - $server_reply = $this->make_request(); - - if ($server_reply === FALSE) { - echo_debug('Update False'); - return FALSE; - } else { - $server_reply = json_decode($server_reply); - echo_debug('JSON Decoded'); - } - - if ($server_reply->code == 1) { - echo_debug('Valid Response'); - $bots = json_decode($server_reply->bots); - $custom_rules = json_decode($server_reply->custom_rules); - } - else{ - echo_debug('Not a valid Response'); - echo_debug(json_encode($server_reply)); - } - - //print_r($bots); - //print_r($custom_rules); - - echo_debug('Connecting DB'); - ASTRA::connect_db(); - echo_debug('DB Connected'); - - $update_bad_bots = ASTRA::$_db->update_bad_bots($bots); - - $update_custom_params = ASTRA::$_db->update_custom_params($custom_rules->params); - $update_custom_ip = ASTRA::$_db->update_custom_ip($custom_rules->ip); - - if ($update_bad_bots && $update_custom_params && $update_custom_ip) { - return TRUE; - } else { - return FALSE; - } - } - - } - -} \ No newline at end of file diff --git a/libraries/Update_config.php b/libraries/Update_config.php deleted file mode 100644 index d9a7707..0000000 --- a/libraries/Update_config.php +++ /dev/null @@ -1,91 +0,0 @@ - $line) { - $line_trim = trim($line); - $str_define = strpos($line_trim, 'define("'); - - if ($str_define === false || $str_define != 0) - continue; - - $line_temp = str_replace('define(', '', $line_trim); - $line_temp = str_replace(');', '', $line_temp); - - $matches = explode(",", $line_temp); - $constant = $matches[0]; - $padding = $matches[1]; - - $constant = str_replace('"', "", $constant); - - json_decode(substr($str_replace, 1, -1)); - if (json_last_error() == 0) { - $data['key'] = 'file_uploads'; - $config = new AstraConfig(); - if($config->get_config($data)){ - $data['value'] = ""; - $config->delete_config($data); - $data['value'] = json_decode(substr($str_replace, 1, -1)); - $data['autoload'] = 1; - $config->add_config($data); - }else{ - $data['value'] = json_decode(substr($str_replace, 1, -1)); - $data['autoload'] = 1; - $config->add_config($data); - } - - - }else{ - - if ($constant == $str_constant) { - $config_file[$line_num] = 'define("' . $constant . '", ' . $str_replace . ');' . "\r\n"; - break; - } else { - - } - - } - } - - $handle = fopen($path_to_astra_config, 'w'); - foreach ($config_file as $line) { - fwrite($handle, rtrim($line) . "\r\n"); - } - fclose($handle); - chmod($path_to_astra_config, 0666); - - return TRUE; - } - -} \ No newline at end of file diff --git a/libraries/Updater.php b/libraries/Updater.php deleted file mode 100644 index c2ff668..0000000 --- a/libraries/Updater.php +++ /dev/null @@ -1,235 +0,0 @@ -server_version = $server_version; - $this->paths['local_path'] = dirname(dirname(__FILE__)) . '/updates/'; - echo_debug("Local path: " . $this->paths['local_path']); - } - - public function is_update() - { - if (1 == 1 || version_compare($this->server_version, CZ_ASTRA_CLIENT_VERSION) > 0) { - $this->update_file_name = 'astra-' . trim($this->server_version) . '.zip'; - echo_debug("Needs to be updated: " . $this->update_file_name); - return TRUE; - } else { - echo_debug("Update not required as:"); - echo_debug(array("Server Version" => $this->server_version, "Client Version" => CZ_ASTRA_CLIENT_VERSION)); - $this->add_error('update_not_required', 'Update not required. Latest version as per server is ' . $this->server_version . ' and client version is ' . CZ_ASTRA_CLIENT_VERSION); - return FALSE; - } - } - - public function get_errors() - { - return $this->errors; - } - - public function add_error($error_code, $error_message) - { - $this->errors[$error_code] = $error_message; - return true; - } - - protected function is_valid_zip() - { - - $zip = new ZipArchive; - - $res = $zip->open($this->paths['local_path'] . $this->update_file_name, ZipArchive::CHECKCONS); - - if ($res !== TRUE) { - switch ($res) { - case ZipArchive::ER_NOZIP : - echo_debug("Not a ZIP"); - $this->add_error('zip_nozip', "The update zip is invalid"); - $ret = FALSE; - /* Not a zip archive */ - case ZipArchive::ER_INCONS : - echo_debug("Consistency check failed"); - $this->add_error('zip_incons', "Failed to download update zip"); - $ret = FALSE; - /* die('consistency check failed'); */ - case ZipArchive::ER_CRC : - echo_debug("Error with CRC"); - $this->add_error('zip_crc', "Update zip CRC failed"); - $ret = FALSE; - default : - echo_debug("Checksum Failed"); - $this->add_error('zip_checksum', "Update zip checksum failed"); - $ret = FALSE; - } - - if ($ret) { - $zip->close(); - } - return $ret; - } else { - echo_debug("Update file is a valid ZIP"); - return TRUE; - } - } - - public function download_file() - { - - $download_filename = $this->paths['local_path'] . $this->update_file_name; - if (file_exists($download_filename) && filesize($download_filename) < 5) { - unlink($download_filename); - } - - if (!is_file($download_filename)) { - - /* Download the File */ - require_once(ASTRAPATH . 'libraries/Crypto.php'); - - $dataArray['client_key'] = CZ_CLIENT_KEY; - $dataArray['api'] = "download_package"; - - $str = serialize($dataArray); - $crypto = new Astra_crypto(); - $encrypted_data = $crypto->encrypt($str, CZ_SECRET_KEY); - - if (!is_dir($this->paths['local_path'])) { - echo_debug("Making updates directory"); - mkdir($this->paths['local_path']); - } - - if (is_writable(dirname($this->paths['local_path'] . $this->update_file_name))) { - $dlHandler = fopen($this->paths['local_path'] . $this->update_file_name, 'w'); - - $ch = curl_init(); - curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); - curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); - curl_setopt($ch, CURLOPT_POSTFIELDS, "encRequest=" . $encrypted_data . "&access_code=" . CZ_ACCESS_KEY); - curl_setopt($ch, CURLOPT_URL, CZ_API_URL); - curl_setopt($ch, CURLOPT_FILE, $dlHandler); - curl_setopt($ch, CURLOPT_HEADER, false); - curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); - - curl_setopt($ch, CURLOPT_HTTPHEADER, array( - 'Content-type: application/x-www-form-urlencoded', - )); - - - $result = curl_exec($ch); - curl_close($ch); - - fclose($dlHandler); - - if ($this->is_valid_zip()) { - return TRUE; - } else { - /* - unlink($this->paths['local_path'] . $this->update_file_name); - echo_debug("Deleted ZIP file since it was not a valid."); - * - */ - return FALSE; - } - } else { - $this->add_error('update_folder_not_writable', 'Please ensure the following path is writable: ' . dirname($this->paths['local_path'] . $this->update_file_name)); - return false; - } - } else { - echo_debug("Unable to write the file since the file probably exists"); - return TRUE; - } - } - - protected function migration() - { - if (file_exists(ASTRAPATH . 'upgrade.php')) { - echo_debug("Upgrade file exists and will be executed"); - $output = shell_exec('php ' . ASTRAPATH . 'upgrade.php'); - echo_debug($output); - unlink(ASTRAPATH . 'upgrade.php'); - echo_debug("Upgrade file deleted"); - return TRUE; - } - - if (!strpos(__FILE__, 'xampp')) { - - } else { - echo_debug("We are in local"); - $fp = dirname(dirname(dirname(__FILE__))) . '/astra/' . 'upgrade.php'; - echo_debug($fp); - if (file_exists($fp)) { - echo_debug("Upgrade file exists and will be executed"); - $output = shell_exec('php ' . $fp); - echo_debug($output); - unlink($fp); - echo_debug("Upgrade file deleted"); - return TRUE; - } - } - - echo_debug('Upgrade file does not exist'); - return TRUE; - } - - public function update($platform = 'php') - { - $zip = new ZipArchive; - if ($zip->open($this->paths['local_path'] . $this->update_file_name) === TRUE) { - if ($platform == 'php') { - $extract_to = dirname(ASTRAPATH); - } else { - $extract_to = dirname(dirname(ASTRAPATH)); - } - echo_debug("Will extract Update to: " . $extract_to); - $extracted = $zip->extractTo($extract_to); - $zip->close(); - $this->migration(); - - if ($extracted) { - echo_debug("ZIP successfully extracted"); - return TRUE; - } else { - $this->add_error('zip_extract_error', 'Failed to extract the update file'); - echo_debug("ZIP extraction not successful"); - return FALSE; - } - } - - $this->add_error('zip_open_error', 'Failed to open the update file'); - echo_debug("Unable to open Update ZIP File"); - return FALSE; - } - - public function delete() - { - if (file_exists($this->paths['local_path'] . $this->update_file_name)) { - if (unlink($this->paths['local_path'] . $this->update_file_name)) { - echo_debug("Just deleted: " . $this->paths['local_path'] . $this->update_file_name); - return TRUE; - } else { - echo_debug("File Exists but unable to delete: " . $this->paths['local_path'] . $this->update_file_name); - return FALSE; - } - } else { - $this->add_error('zip_delete_error', 'Failed to delete update file: ' . $this->paths['local_path'] . $this->update_file_name); - echo_debug("Unable to delete: " . $this->paths['local_path'] . $this->update_file_name); - } - } - - } - -} \ No newline at end of file diff --git a/libraries/Virtual_patches.php b/libraries/Virtual_patches.php deleted file mode 100644 index e31dd3e..0000000 --- a/libraries/Virtual_patches.php +++ /dev/null @@ -1,67 +0,0 @@ - - * @date 12/5/19 - */ - -if (!class_exists('Astra_virtual_patches')) { - - class Astra_virtual_patches - { - - protected $url; - protected $applied_patches = array(); - - function __construct() - { - if (!empty($_SERVER['REQUEST_URI'])) { - $this->url = $_SERVER['REQUEST_URI']; - } - } - - function apply() - { - - $methods = preg_grep('/^patch_/', get_class_methods($this)); - foreach ($methods as $method) { - $is_applied = $this->{$method}(); - if ($is_applied === TRUE) { - $this->applied_patches[] = $method; - } - } - - //print_r($this->applied_patches); - } - - function get_applied_patches() - { - return $this->applied_patches; - } - - function url_contains($slug = '') - { - return (false !== strpos($this->url, $slug)) ? TRUE : FALSE; - } - - function string_after($haystack, $needle) - { - return substr($haystack, strpos($haystack, $needle) + strlen($needle)); - } - - function patch_magento_smartwave_quickview() - { - - if (!$this->url_contains('quickview/index/view/path')) { - return false; - } - - $string_after = $this->string_after($this->url, 'quickview/index/view/path'); - if ($this->url_contains(';') || strlen($string_after) > 3) { - return true; - } - - } - } -} \ No newline at end of file diff --git a/libraries/browser.php b/libraries/browser.php deleted file mode 100644 index eb99c78..0000000 --- a/libraries/browser.php +++ /dev/null @@ -1,1730 +0,0 @@ -getBrowser() == Browser::BROWSER_FIREFOX && $browser->getVersion() >= 2 ) { - * echo 'You have FireFox version 2 or greater'; - * } - * - * User Agents Sampled from: http://www.useragentstring.com/ - * - * This implementation is based on the original work from Gary White - * http://apptools.com/phptools/browser/ - * - */ - -if (!class_exists('Browser_Astra')) { - class Browser_Astra - { - private $_agent = ''; - private $_browser_name = ''; - private $_version = ''; - private $_platform = ''; - private $_os = ''; - private $_is_aol = false; - private $_is_mobile = false; - private $_is_tablet = false; - private $_is_robot = false; - private $_is_facebook = false; - private $_aol_version = ''; - - const BROWSER_UNKNOWN = 'unknown'; - const VERSION_UNKNOWN = 'unknown'; - - const BROWSER_OPERA = 'Opera'; // http://www.opera.com/ - const BROWSER_OPERA_MINI = 'Opera Mini'; // http://www.opera.com/mini/ - const BROWSER_WEBTV = 'WebTV'; // http://www.webtv.net/pc/ - const BROWSER_EDGE = 'Edge'; // https://www.microsoft.com/edge - const BROWSER_IE = 'Internet Explorer'; // http://www.microsoft.com/ie/ - const BROWSER_POCKET_IE = 'Pocket Internet Explorer'; // http://en.wikipedia.org/wiki/Internet_Explorer_Mobile - const BROWSER_KONQUEROR = 'Konqueror'; // http://www.konqueror.org/ - const BROWSER_ICAB = 'iCab'; // http://www.icab.de/ - const BROWSER_OMNIWEB = 'OmniWeb'; // http://www.omnigroup.com/applications/omniweb/ - const BROWSER_FIREBIRD = 'Firebird'; // http://www.ibphoenix.com/ - const BROWSER_FIREFOX = 'Firefox'; // http://www.mozilla.com/en-US/firefox/firefox.html - const BROWSER_ICEWEASEL = 'Iceweasel'; // http://www.geticeweasel.org/ - const BROWSER_SHIRETOKO = 'Shiretoko'; // http://wiki.mozilla.org/Projects/shiretoko - const BROWSER_MOZILLA = 'Mozilla'; // http://www.mozilla.com/en-US/ - const BROWSER_AMAYA = 'Amaya'; // http://www.w3.org/Amaya/ - const BROWSER_LYNX = 'Lynx'; // http://en.wikipedia.org/wiki/Lynx - const BROWSER_SAFARI = 'Safari'; // http://apple.com - const BROWSER_IPHONE = 'iPhone'; // http://apple.com - const BROWSER_IPOD = 'iPod'; // http://apple.com - const BROWSER_IPAD = 'iPad'; // http://apple.com - const BROWSER_CHROME = 'Chrome'; // http://www.google.com/chrome - const BROWSER_ANDROID = 'Android'; // http://www.android.com/ - const BROWSER_GOOGLEBOT = 'GoogleBot'; // http://en.wikipedia.org/wiki/Googlebot - - const BROWSER_YANDEXBOT = 'YandexBot'; // http://yandex.com/bots - const BROWSER_YANDEXIMAGERESIZER_BOT = 'YandexImageResizer'; // http://yandex.com/bots - const BROWSER_YANDEXIMAGES_BOT = 'YandexImages'; // http://yandex.com/bots - const BROWSER_YANDEXVIDEO_BOT = 'YandexVideo'; // http://yandex.com/bots - const BROWSER_YANDEXMEDIA_BOT = 'YandexMedia'; // http://yandex.com/bots - const BROWSER_YANDEXBLOGS_BOT = 'YandexBlogs'; // http://yandex.com/bots - const BROWSER_YANDEXFAVICONS_BOT = 'YandexFavicons'; // http://yandex.com/bots - const BROWSER_YANDEXWEBMASTER_BOT = 'YandexWebmaster'; // http://yandex.com/bots - const BROWSER_YANDEXDIRECT_BOT = 'YandexDirect'; // http://yandex.com/bots - const BROWSER_YANDEXMETRIKA_BOT = 'YandexMetrika'; // http://yandex.com/bots - const BROWSER_YANDEXNEWS_BOT = 'YandexNews'; // http://yandex.com/bots - const BROWSER_YANDEXCATALOG_BOT = 'YandexCatalog'; // http://yandex.com/bots - - const BROWSER_SLURP = 'Yahoo! Slurp'; // http://en.wikipedia.org/wiki/Yahoo!_Slurp - const BROWSER_W3CVALIDATOR = 'W3C Validator'; // http://validator.w3.org/ - const BROWSER_BLACKBERRY = 'BlackBerry'; // http://www.blackberry.com/ - const BROWSER_ICECAT = 'IceCat'; // http://en.wikipedia.org/wiki/GNU_IceCat - const BROWSER_NOKIA_S60 = 'Nokia S60 OSS Browser'; // http://en.wikipedia.org/wiki/Web_Browser_for_S60 - const BROWSER_NOKIA = 'Nokia Browser'; // * all other WAP-based browsers on the Nokia Platform - const BROWSER_MSN = 'MSN Browser'; // http://explorer.msn.com/ - const BROWSER_MSNBOT = 'MSN Bot'; // http://search.msn.com/msnbot.htm - const BROWSER_BINGBOT = 'Bing Bot'; // http://en.wikipedia.org/wiki/Bingbot - const BROWSER_VIVALDI = 'Vivalidi'; // https://vivaldi.com/ - const BROWSER_YANDEX = 'Yandex'; // https://browser.yandex.ua/ - - const BROWSER_NETSCAPE_NAVIGATOR = 'Netscape Navigator'; // http://browser.netscape.com/ (DEPRECATED) - const BROWSER_GALEON = 'Galeon'; // http://galeon.sourceforge.net/ (DEPRECATED) - const BROWSER_NETPOSITIVE = 'NetPositive'; // http://en.wikipedia.org/wiki/NetPositive (DEPRECATED) - const BROWSER_PHOENIX = 'Phoenix'; // http://en.wikipedia.org/wiki/History_of_Mozilla_Firefox (DEPRECATED) - const BROWSER_PLAYSTATION = "PlayStation"; - const BROWSER_SAMSUNG = "SamsungBrowser"; - const BROWSER_SILK = "Silk"; - const BROWSER_I_FRAME = "Iframely"; - const BROWSER_COCOA = "CocoaRestClient"; - - const PLATFORM_UNKNOWN = 'unknown'; - const PLATFORM_WINDOWS = 'Windows'; - const PLATFORM_WINDOWS_CE = 'Windows CE'; - const PLATFORM_APPLE = 'Apple'; - const PLATFORM_LINUX = 'Linux'; - const PLATFORM_OS2 = 'OS/2'; - const PLATFORM_BEOS = 'BeOS'; - const PLATFORM_IPHONE = 'iPhone'; - const PLATFORM_IPOD = 'iPod'; - const PLATFORM_IPAD = 'iPad'; - const PLATFORM_BLACKBERRY = 'BlackBerry'; - const PLATFORM_NOKIA = 'Nokia'; - const PLATFORM_FREEBSD = 'FreeBSD'; - const PLATFORM_OPENBSD = 'OpenBSD'; - const PLATFORM_NETBSD = 'NetBSD'; - const PLATFORM_SUNOS = 'SunOS'; - const PLATFORM_OPENSOLARIS = 'OpenSolaris'; - const PLATFORM_ANDROID = 'Android'; - const PLATFORM_PLAYSTATION = "Sony PlayStation"; - const PLATFORM_ROKU = "Roku"; - const PLATFORM_APPLE_TV = "Apple TV"; - const PLATFORM_TERMINAL = "Terminal"; - const PLATFORM_FIRE_OS = "Fire OS"; - const PLATFORM_SMART_TV = "SMART-TV"; - const PLATFORM_CHROME_OS = "Chrome OS"; - const PLATFORM_JAVA_ANDROID = "Java/Android"; - const PLATFORM_POSTMAN = "Postman"; - const PLATFORM_I_FRAME = "Iframely"; - - const OPERATING_SYSTEM_UNKNOWN = 'unknown'; - - /** - * Class constructor - */ - public function __construct($userAgent = "") - { - $this->reset(); - if ($userAgent != "") { - $this->setUserAgent($userAgent); - } else { - $this->determine(); - } - } - - /** - * Reset all properties - */ - public function reset() - { - $this->_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ""; - $this->_browser_name = self::BROWSER_UNKNOWN; - $this->_version = self::VERSION_UNKNOWN; - $this->_platform = self::PLATFORM_UNKNOWN; - $this->_os = self::OPERATING_SYSTEM_UNKNOWN; - $this->_is_aol = false; - $this->_is_mobile = false; - $this->_is_tablet = false; - $this->_is_robot = false; - $this->_is_facebook = false; - $this->_aol_version = self::VERSION_UNKNOWN; - } - - /** - * Check to see if the specific browser is valid - * @param string $browserName - * @return bool True if the browser is the specified browser - */ - function isBrowser($browserName) - { - return (0 == strcasecmp($this->_browser_name, trim($browserName))); - } - - /** - * The name of the browser. All return types are from the class contants - * @return string Name of the browser - */ - public function getBrowser() - { - return $this->_browser_name; - } - - /** - * Set the name of the browser - * @param $browser string The name of the Browser - */ - public function setBrowser($browser) - { - $this->_browser_name = $browser; - } - - /** - * The name of the platform. All return types are from the class contants - * @return string Name of the browser - */ - public function getPlatform() - { - return $this->_platform; - } - - /** - * Set the name of the platform - * @param string $platform The name of the Platform - */ - public function setPlatform($platform) - { - $this->_platform = $platform; - } - - /** - * The version of the browser. - * @return string Version of the browser (will only contain alpha-numeric characters and a period) - */ - public function getVersion() - { - return $this->_version; - } - - /** - * Set the version of the browser - * @param string $version The version of the Browser - */ - public function setVersion($version) - { - $this->_version = preg_replace('/[^0-9,.,a-z,A-Z-]/', '', $version); - } - - /** - * The version of AOL. - * @return string Version of AOL (will only contain alpha-numeric characters and a period) - */ - public function getAolVersion() - { - return $this->_aol_version; - } - - /** - * Set the version of AOL - * @param string $version The version of AOL - */ - public function setAolVersion($version) - { - $this->_aol_version = preg_replace('/[^0-9,.,a-z,A-Z]/', '', $version); - } - - /** - * Is the browser from AOL? - * @return boolean True if the browser is from AOL otherwise false - */ - public function isAol() - { - return $this->_is_aol; - } - - /** - * Is the browser from a mobile device? - * @return boolean True if the browser is from a mobile device otherwise false - */ - public function isMobile() - { - return $this->_is_mobile; - } - - /** - * Is the browser from a tablet device? - * @return boolean True if the browser is from a tablet device otherwise false - */ - public function isTablet() - { - return $this->_is_tablet; - } - - /** - * Is the browser from a robot (ex Slurp,GoogleBot)? - * @return boolean True if the browser is from a robot otherwise false - */ - public function isRobot() - { - return $this->_is_robot; - } - - /** - * Is the browser from facebook? - * @return boolean True if the browser is from facebook otherwise false - */ - public function isFacebook() - { - return $this->_is_facebook; - } - - /** - * Set the browser to be from AOL - * @param $isAol - */ - public function setAol($isAol) - { - $this->_is_aol = $isAol; - } - - /** - * Set the Browser to be mobile - * @param boolean $value is the browser a mobile browser or not - */ - protected function setMobile($value = true) - { - $this->_is_mobile = $value; - } - - /** - * Set the Browser to be tablet - * @param boolean $value is the browser a tablet browser or not - */ - protected function setTablet($value = true) - { - $this->_is_tablet = $value; - } - - /** - * Set the Browser to be a robot - * @param boolean $value is the browser a robot or not - */ - protected function setRobot($value = true) - { - $this->_is_robot = $value; - } - - /** - * Set the Browser to be a Facebook request - * @param boolean $value is the browser a robot or not - */ - protected function setFacebook($value = true) - { - $this->_is_facebook = $value; - } - - /** - * Get the user agent value in use to determine the browser - * @return string The user agent from the HTTP header - */ - public function getUserAgent() - { - return $this->_agent; - } - - /** - * Set the user agent value (the construction will use the HTTP header value - this will overwrite it) - * @param string $agent_string The value for the User Agent - */ - public function setUserAgent($agent_string) - { - $this->reset(); - $this->_agent = $agent_string; - $this->determine(); - } - - /** - * Used to determine if the browser is actually "chromeframe" - * @since 1.7 - * @return boolean True if the browser is using chromeframe - */ - public function isChromeFrame() - { - return (strpos($this->_agent, "chromeframe") !== false); - } - - /** - * Returns a formatted string with a summary of the details of the browser. - * @return string formatted string with a summary of the browser - */ - public function __toString() - { - return "Browser Name: {$this->getBrowser()}
\n" . - "Browser Version: {$this->getVersion()}
\n" . - "Browser User Agent String: {$this->getUserAgent()}
\n" . - "Platform: {$this->getPlatform()}
"; - } - - /** - * Protected routine to calculate and determine what the browser is in use (including platform) - */ - protected function determine() - { - $this->checkPlatform(); - $this->checkBrowsers(); - $this->checkForAol(); - } - - /** - * Protected routine to determine the browser type - * @return boolean True if the browser was detected otherwise false - */ - protected function checkBrowsers() - { - return ( - // well-known, well-used - // Special Notes: - // (1) Opera must be checked before FireFox due to the odd - // user agents used in some older versions of Opera - // (2) WebTV is strapped onto Internet Explorer so we must - // check for WebTV before IE - // (3) (deprecated) Galeon is based on Firefox and needs to be - // tested before Firefox is tested - // (4) OmniWeb is based on Safari so OmniWeb check must occur - // before Safari - // (5) Netscape 9+ is based on Firefox so Netscape checks - // before FireFox are necessary - // (6) Vivalid is UA contains both Firefox and Chrome so Vivalid checks - // before Firefox and Chrome - $this->checkBrowserWebTv() || - $this->checkBrowserEdge() || - $this->checkBrowserInternetExplorer() || - $this->checkBrowserOpera() || - $this->checkBrowserGaleon() || - $this->checkBrowserNetscapeNavigator9Plus() || - $this->checkBrowserVivaldi() || - $this->checkBrowserYandex() || - $this->checkBrowserFirefox() || - $this->checkBrowserChrome() || - $this->checkBrowserOmniWeb() || - - // common mobile - $this->checkBrowserAndroid() || - $this->checkBrowseriPad() || - $this->checkBrowseriPod() || - $this->checkBrowseriPhone() || - $this->checkBrowserBlackBerry() || - $this->checkBrowserNokia() || - - // common bots - $this->checkBrowserGoogleBot() || - $this->checkBrowserMSNBot() || - $this->checkBrowserBingBot() || - $this->checkBrowserSlurp() || - - // Yandex bots - $this->checkBrowserYandexBot() || - $this->checkBrowserYandexImageResizerBot() || - $this->checkBrowserYandexBlogsBot() || - $this->checkBrowserYandexCatalogBot() || - $this->checkBrowserYandexDirectBot() || - $this->checkBrowserYandexFaviconsBot() || - $this->checkBrowserYandexImagesBot() || - $this->checkBrowserYandexMediaBot() || - $this->checkBrowserYandexMetrikaBot() || - $this->checkBrowserYandexNewsBot() || - $this->checkBrowserYandexVideoBot() || - $this->checkBrowserYandexWebmasterBot() || - - // check for facebook external hit when loading URL - $this->checkFacebookExternalHit() || - - // WebKit base check (post mobile and others) - $this->checkBrowserSamsung() || - $this->checkBrowserSilk() || - $this->checkBrowserSafari() || - - // everyone else - $this->checkBrowserNetPositive() || - $this->checkBrowserFirebird() || - $this->checkBrowserKonqueror() || - $this->checkBrowserIcab() || - $this->checkBrowserPhoenix() || - $this->checkBrowserAmaya() || - $this->checkBrowserLynx() || - $this->checkBrowserShiretoko() || - $this->checkBrowserIceCat() || - $this->checkBrowserIceweasel() || - $this->checkBrowserW3CValidator() || - $this->checkBrowserPlayStation() || - $this->checkBrowserIframely() || - $this->checkBrowserCocoa() || - $this->checkBrowserMozilla() /* Mozilla is such an open standard that you must check it last */ - - - ); - } - - /** - * Determine if the user is using a BlackBerry (last updated 1.7) - * @return boolean True if the browser is the BlackBerry browser otherwise false - */ - protected function checkBrowserBlackBerry() - { - if (stripos($this->_agent, 'blackberry') !== false) { - $aresult = explode("/", stristr($this->_agent, "BlackBerry")); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - $this->_browser_name = self::BROWSER_BLACKBERRY; - $this->setMobile(true); - return true; - } - } - return false; - } - - /** - * Determine if the user is using an AOL User Agent (last updated 1.7) - * @return boolean True if the browser is from AOL otherwise false - */ - protected function checkForAol() - { - $this->setAol(false); - $this->setAolVersion(self::VERSION_UNKNOWN); - - if (stripos($this->_agent, 'aol') !== false) { - $aversion = explode(' ', stristr($this->_agent, 'AOL')); - if (isset($aversion[1])) { - $this->setAol(true); - $this->setAolVersion(preg_replace('/[^0-9\.a-z]/i', '', $aversion[1])); - return true; - } - } - return false; - } - - /** - * Determine if the browser is the GoogleBot or not (last updated 1.7) - * @return boolean True if the browser is the GoogletBot otherwise false - */ - protected function checkBrowserGoogleBot() - { - if (stripos($this->_agent, 'googlebot') !== false) { - $aresult = explode('/', stristr($this->_agent, 'googlebot')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion(str_replace(';', '', $aversion[0])); - $this->_browser_name = self::BROWSER_GOOGLEBOT; - $this->setRobot(true); - return true; - } - } - return false; - } - - /** - * Determine if the browser is the YandexBot or not - * @return boolean True if the browser is the YandexBot otherwise false - */ - protected function checkBrowserYandexBot() - { - if (stripos($this->_agent, 'YandexBot') !== false) { - $aresult = explode('/', stristr($this->_agent, 'YandexBot')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion(str_replace(';', '', $aversion[0])); - $this->_browser_name = self::BROWSER_YANDEXBOT; - $this->setRobot(true); - return true; - } - } - return false; - } - - /** - * Determine if the browser is the YandexImageResizer or not - * @return boolean True if the browser is the YandexImageResizer otherwise false - */ - protected function checkBrowserYandexImageResizerBot() - { - if (stripos($this->_agent, 'YandexImageResizer') !== false) { - $aresult = explode('/', stristr($this->_agent, 'YandexImageResizer')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion(str_replace(';', '', $aversion[0])); - $this->_browser_name = self::BROWSER_YANDEXIMAGERESIZER_BOT; - $this->setRobot(true); - return true; - } - } - return false; - } - - /** - * Determine if the browser is the YandexCatalog or not - * @return boolean True if the browser is the YandexCatalog otherwise false - */ - protected function checkBrowserYandexCatalogBot() - { - if (stripos($this->_agent, 'YandexCatalog') !== false) { - $aresult = explode('/', stristr($this->_agent, 'YandexCatalog')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion(str_replace(';', '', $aversion[0])); - $this->_browser_name = self::BROWSER_YANDEXCATALOG_BOT; - $this->setRobot(true); - return true; - } - } - return false; - } - - /** - * Determine if the browser is the YandexNews or not - * @return boolean True if the browser is the YandexNews otherwise false - */ - protected function checkBrowserYandexNewsBot() - { - if (stripos($this->_agent, 'YandexNews') !== false) { - $aresult = explode('/', stristr($this->_agent, 'YandexNews')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion(str_replace(';', '', $aversion[0])); - $this->_browser_name = self::BROWSER_YANDEXNEWS_BOT; - $this->setRobot(true); - return true; - } - } - return false; - } - - /** - * Determine if the browser is the YandexMetrika or not - * @return boolean True if the browser is the YandexMetrika otherwise false - */ - protected function checkBrowserYandexMetrikaBot() - { - if (stripos($this->_agent, 'YandexMetrika') !== false) { - $aresult = explode('/', stristr($this->_agent, 'YandexMetrika')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion(str_replace(';', '', $aversion[0])); - $this->_browser_name = self::BROWSER_YANDEXMETRIKA_BOT; - $this->setRobot(true); - return true; - } - } - return false; - } - - /** - * Determine if the browser is the YandexDirect or not - * @return boolean True if the browser is the YandexDirect otherwise false - */ - protected function checkBrowserYandexDirectBot() - { - if (stripos($this->_agent, 'YandexDirect') !== false) { - $aresult = explode('/', stristr($this->_agent, 'YandexDirect')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion(str_replace(';', '', $aversion[0])); - $this->_browser_name = self::BROWSER_YANDEXDIRECT_BOT; - $this->setRobot(true); - return true; - } - } - return false; - } - - /** - * Determine if the browser is the YandexWebmaster or not - * @return boolean True if the browser is the YandexWebmaster otherwise false - */ - protected function checkBrowserYandexWebmasterBot() - { - if (stripos($this->_agent, 'YandexWebmaster') !== false) { - $aresult = explode('/', stristr($this->_agent, 'YandexWebmaster')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion(str_replace(';', '', $aversion[0])); - $this->_browser_name = self::BROWSER_YANDEXWEBMASTER_BOT; - $this->setRobot(true); - return true; - } - } - return false; - } - - /** - * Determine if the browser is the YandexFavicons or not - * @return boolean True if the browser is the YandexFavicons otherwise false - */ - protected function checkBrowserYandexFaviconsBot() - { - if (stripos($this->_agent, 'YandexFavicons') !== false) { - $aresult = explode('/', stristr($this->_agent, 'YandexFavicons')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion(str_replace(';', '', $aversion[0])); - $this->_browser_name = self::BROWSER_YANDEXFAVICONS_BOT; - $this->setRobot(true); - return true; - } - } - return false; - } - - /** - * Determine if the browser is the YandexBlogs or not - * @return boolean True if the browser is the YandexBlogs otherwise false - */ - protected function checkBrowserYandexBlogsBot() - { - if (stripos($this->_agent, 'YandexBlogs') !== false) { - $aresult = explode('/', stristr($this->_agent, 'YandexBlogs')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion(str_replace(';', '', $aversion[0])); - $this->_browser_name = self::BROWSER_YANDEXBLOGS_BOT; - $this->setRobot(true); - return true; - } - } - return false; - } - - /** - * Determine if the browser is the YandexMedia or not - * @return boolean True if the browser is the YandexMedia otherwise false - */ - protected function checkBrowserYandexMediaBot() - { - if (stripos($this->_agent, 'YandexMedia') !== false) { - $aresult = explode('/', stristr($this->_agent, 'YandexMedia')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion(str_replace(';', '', $aversion[0])); - $this->_browser_name = self::BROWSER_YANDEXMEDIA_BOT; - $this->setRobot(true); - return true; - } - } - return false; - } - - /** - * Determine if the browser is the YandexVideo or not - * @return boolean True if the browser is the YandexVideo otherwise false - */ - protected function checkBrowserYandexVideoBot() - { - if (stripos($this->_agent, 'YandexVideo') !== false) { - $aresult = explode('/', stristr($this->_agent, 'YandexVideo')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion(str_replace(';', '', $aversion[0])); - $this->_browser_name = self::BROWSER_YANDEXVIDEO_BOT; - $this->setRobot(true); - return true; - } - } - return false; - } - - /** - * Determine if the browser is the YandexImages or not - * @return boolean True if the browser is the YandexImages otherwise false - */ - protected function checkBrowserYandexImagesBot() - { - if (stripos($this->_agent, 'YandexImages') !== false) { - $aresult = explode('/', stristr($this->_agent, 'YandexImages')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion(str_replace(';', '', $aversion[0])); - $this->_browser_name = self::BROWSER_YANDEXIMAGES_BOT; - $this->setRobot(true); - return true; - } - } - return false; - } - - /** - * Determine if the browser is the MSNBot or not (last updated 1.9) - * @return boolean True if the browser is the MSNBot otherwise false - */ - protected function checkBrowserMSNBot() - { - if (stripos($this->_agent, "msnbot") !== false) { - $aresult = explode("/", stristr($this->_agent, "msnbot")); - if (isset($aresult[1])) { - $aversion = explode(" ", $aresult[1]); - $this->setVersion(str_replace(";", "", $aversion[0])); - $this->_browser_name = self::BROWSER_MSNBOT; - $this->setRobot(true); - return true; - } - } - return false; - } - - /** - * Determine if the browser is the BingBot or not (last updated 1.9) - * @return boolean True if the browser is the BingBot otherwise false - */ - protected function checkBrowserBingBot() - { - if (stripos($this->_agent, "bingbot") !== false) { - $aresult = explode("/", stristr($this->_agent, "bingbot")); - if (isset($aresult[1])) { - $aversion = explode(" ", $aresult[1]); - $this->setVersion(str_replace(";", "", $aversion[0])); - $this->_browser_name = self::BROWSER_BINGBOT; - $this->setRobot(true); - return true; - } - } - return false; - } - - /** - * Determine if the browser is the W3C Validator or not (last updated 1.7) - * @return boolean True if the browser is the W3C Validator otherwise false - */ - protected function checkBrowserW3CValidator() - { - if (stripos($this->_agent, 'W3C-checklink') !== false) { - $aresult = explode('/', stristr($this->_agent, 'W3C-checklink')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - $this->_browser_name = self::BROWSER_W3CVALIDATOR; - return true; - } - } else if (stripos($this->_agent, 'W3C_Validator') !== false) { - // Some of the Validator versions do not delineate w/ a slash - add it back in - $ua = str_replace("W3C_Validator ", "W3C_Validator/", $this->_agent); - $aresult = explode('/', stristr($ua, 'W3C_Validator')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - $this->_browser_name = self::BROWSER_W3CVALIDATOR; - return true; - } - } else if (stripos($this->_agent, 'W3C-mobileOK') !== false) { - $this->_browser_name = self::BROWSER_W3CVALIDATOR; - $this->setMobile(true); - return true; - } - return false; - } - - /** - * Determine if the browser is the Yahoo! Slurp Robot or not (last updated 1.7) - * @return boolean True if the browser is the Yahoo! Slurp Robot otherwise false - */ - protected function checkBrowserSlurp() - { - if (stripos($this->_agent, 'slurp') !== false) { - $aresult = explode('/', stristr($this->_agent, 'Slurp')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - $this->_browser_name = self::BROWSER_SLURP; - $this->setRobot(true); - $this->setMobile(false); - return true; - } - } - return false; - } - - /** - * Determine if the browser is Edge or not - * @return boolean True if the browser is Edge otherwise false - */ - protected function checkBrowserEdge() - { - if (stripos($this->_agent, 'Edge/') !== false) { - $aresult = explode('/', stristr($this->_agent, 'Edge')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - $this->setBrowser(self::BROWSER_EDGE); - if (stripos($this->_agent, 'Windows Phone') !== false || stripos($this->_agent, 'Android') !== false) { - $this->setMobile(true); - } - return true; - } - } - return false; - } - - /** - * Determine if the browser is Internet Explorer or not (last updated 1.7) - * @return boolean True if the browser is Internet Explorer otherwise false - */ - protected function checkBrowserInternetExplorer() - { - // Test for IE11 - if (stripos($this->_agent, 'Trident/7.0; rv:11.0') !== false) { - $this->setBrowser(self::BROWSER_IE); - $this->setVersion('11.0'); - return true; - } // Test for v1 - v1.5 IE - else if (stripos($this->_agent, 'microsoft internet explorer') !== false) { - $this->setBrowser(self::BROWSER_IE); - $this->setVersion('1.0'); - $aresult = stristr($this->_agent, '/'); - if (preg_match('/308|425|426|474|0b1/i', $aresult)) { - $this->setVersion('1.5'); - } - return true; - } // Test for versions > 1.5 - else if (stripos($this->_agent, 'msie') !== false && stripos($this->_agent, 'opera') === false) { - // See if the browser is the odd MSN Explorer - if (stripos($this->_agent, 'msnb') !== false) { - $aresult = explode(' ', stristr(str_replace(';', '; ', $this->_agent), 'MSN')); - if (isset($aresult[1])) { - $this->setBrowser(self::BROWSER_MSN); - $this->setVersion(str_replace(array('(', ')', ';'), '', $aresult[1])); - return true; - } - } - $aresult = explode(' ', stristr(str_replace(';', '; ', $this->_agent), 'msie')); - if (isset($aresult[1])) { - $this->setBrowser(self::BROWSER_IE); - $this->setVersion(str_replace(array('(', ')', ';'), '', $aresult[1])); - if (preg_match('#trident/([0-9\.]+);#i', $this->_agent, $aresult)) { - if ($aresult[1] == '3.1') { - $this->setVersion('7.0'); - } else if ($aresult[1] == '4.0') { - $this->setVersion('8.0'); - } else if ($aresult[1] == '5.0') { - $this->setVersion('9.0'); - } else if ($aresult[1] == '6.0') { - $this->setVersion('10.0'); - } else if ($aresult[1] == '7.0') { - $this->setVersion('11.0'); - } else if ($aresult[1] == '8.0') { - $this->setVersion('11.0'); - } - } - if (stripos($this->_agent, 'IEMobile') !== false) { - $this->setBrowser(self::BROWSER_POCKET_IE); - $this->setMobile(true); - } - return true; - } - } // Test for versions > IE 10 - else if (stripos($this->_agent, 'trident') !== false) { - $this->setBrowser(self::BROWSER_IE); - $result = explode('rv:', $this->_agent); - if (isset($result[1])) { - $this->setVersion(preg_replace('/[^0-9.]+/', '', $result[1])); - $this->_agent = str_replace(array("Mozilla", "Gecko"), "MSIE", $this->_agent); - } - } // Test for Pocket IE - else if (stripos($this->_agent, 'mspie') !== false || stripos($this->_agent, 'pocket') !== false) { - $aresult = explode(' ', stristr($this->_agent, 'mspie')); - if (isset($aresult[1])) { - $this->setPlatform(self::PLATFORM_WINDOWS_CE); - $this->setBrowser(self::BROWSER_POCKET_IE); - $this->setMobile(true); - - if (stripos($this->_agent, 'mspie') !== false) { - $this->setVersion($aresult[1]); - } else { - $aversion = explode('/', $this->_agent); - if (isset($aversion[1])) { - $this->setVersion($aversion[1]); - } - } - return true; - } - } - return false; - } - - /** - * Determine if the browser is Opera or not (last updated 1.7) - * @return boolean True if the browser is Opera otherwise false - */ - protected function checkBrowserOpera() - { - if (stripos($this->_agent, 'opera mini') !== false) { - $resultant = stristr($this->_agent, 'opera mini'); - if (preg_match('/\//', $resultant)) { - $aresult = explode('/', $resultant); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - } - } else { - $aversion = explode(' ', stristr($resultant, 'opera mini')); - if (isset($aversion[1])) { - $this->setVersion($aversion[1]); - } - } - $this->_browser_name = self::BROWSER_OPERA_MINI; - $this->setMobile(true); - return true; - } else if (stripos($this->_agent, 'opera') !== false) { - $resultant = stristr($this->_agent, 'opera'); - if (preg_match('/Version\/(1*.*)$/', $resultant, $matches)) { - $this->setVersion($matches[1]); - } else if (preg_match('/\//', $resultant)) { - $aresult = explode('/', str_replace("(", " ", $resultant)); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - } - } else { - $aversion = explode(' ', stristr($resultant, 'opera')); - $this->setVersion(isset($aversion[1]) ? $aversion[1] : ""); - } - if (stripos($this->_agent, 'Opera Mobi') !== false) { - $this->setMobile(true); - } - $this->_browser_name = self::BROWSER_OPERA; - return true; - } else if (stripos($this->_agent, 'OPR') !== false) { - $resultant = stristr($this->_agent, 'OPR'); - if (preg_match('/\//', $resultant)) { - $aresult = explode('/', str_replace("(", " ", $resultant)); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - } - } - if (stripos($this->_agent, 'Mobile') !== false) { - $this->setMobile(true); - } - $this->_browser_name = self::BROWSER_OPERA; - return true; - } - return false; - } - - /** - * Determine if the browser is Chrome or not (last updated 1.7) - * @return boolean True if the browser is Chrome otherwise false - */ - protected function checkBrowserChrome() - { - if (stripos($this->_agent, 'Chrome') !== false) { - $aresult = explode('/', stristr($this->_agent, 'Chrome')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - $this->setBrowser(self::BROWSER_CHROME); - //Chrome on Android - if (stripos($this->_agent, 'Android') !== false) { - if (stripos($this->_agent, 'Mobile') !== false) { - $this->setMobile(true); - } else { - $this->setTablet(true); - } - } - return true; - } - } - return false; - } - - - /** - * Determine if the browser is WebTv or not (last updated 1.7) - * @return boolean True if the browser is WebTv otherwise false - */ - protected function checkBrowserWebTv() - { - if (stripos($this->_agent, 'webtv') !== false) { - $aresult = explode('/', stristr($this->_agent, 'webtv')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - $this->setBrowser(self::BROWSER_WEBTV); - return true; - } - } - return false; - } - - /** - * Determine if the browser is NetPositive or not (last updated 1.7) - * @return boolean True if the browser is NetPositive otherwise false - */ - protected function checkBrowserNetPositive() - { - if (stripos($this->_agent, 'NetPositive') !== false) { - $aresult = explode('/', stristr($this->_agent, 'NetPositive')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion(str_replace(array('(', ')', ';'), '', $aversion[0])); - $this->setBrowser(self::BROWSER_NETPOSITIVE); - return true; - } - } - return false; - } - - /** - * Determine if the browser is Galeon or not (last updated 1.7) - * @return boolean True if the browser is Galeon otherwise false - */ - protected function checkBrowserGaleon() - { - if (stripos($this->_agent, 'galeon') !== false) { - $aresult = explode(' ', stristr($this->_agent, 'galeon')); - $aversion = explode('/', $aresult[0]); - if (isset($aversion[1])) { - $this->setVersion($aversion[1]); - $this->setBrowser(self::BROWSER_GALEON); - return true; - } - } - return false; - } - - /** - * Determine if the browser is Konqueror or not (last updated 1.7) - * @return boolean True if the browser is Konqueror otherwise false - */ - protected function checkBrowserKonqueror() - { - if (stripos($this->_agent, 'Konqueror') !== false) { - $aresult = explode(' ', stristr($this->_agent, 'Konqueror')); - $aversion = explode('/', $aresult[0]); - if (isset($aversion[1])) { - $this->setVersion($aversion[1]); - $this->setBrowser(self::BROWSER_KONQUEROR); - return true; - } - } - return false; - } - - /** - * Determine if the browser is iCab or not (last updated 1.7) - * @return boolean True if the browser is iCab otherwise false - */ - protected function checkBrowserIcab() - { - if (stripos($this->_agent, 'icab') !== false) { - $aversion = explode(' ', stristr(str_replace('/', ' ', $this->_agent), 'icab')); - if (isset($aversion[1])) { - $this->setVersion($aversion[1]); - $this->setBrowser(self::BROWSER_ICAB); - return true; - } - } - return false; - } - - /** - * Determine if the browser is OmniWeb or not (last updated 1.7) - * @return boolean True if the browser is OmniWeb otherwise false - */ - protected function checkBrowserOmniWeb() - { - if (stripos($this->_agent, 'omniweb') !== false) { - $aresult = explode('/', stristr($this->_agent, 'omniweb')); - $aversion = explode(' ', isset($aresult[1]) ? $aresult[1] : ""); - $this->setVersion($aversion[0]); - $this->setBrowser(self::BROWSER_OMNIWEB); - return true; - } - return false; - } - - /** - * Determine if the browser is Phoenix or not (last updated 1.7) - * @return boolean True if the browser is Phoenix otherwise false - */ - protected function checkBrowserPhoenix() - { - if (stripos($this->_agent, 'Phoenix') !== false) { - $aversion = explode('/', stristr($this->_agent, 'Phoenix')); - if (isset($aversion[1])) { - $this->setVersion($aversion[1]); - $this->setBrowser(self::BROWSER_PHOENIX); - return true; - } - } - return false; - } - - /** - * Determine if the browser is Firebird or not (last updated 1.7) - * @return boolean True if the browser is Firebird otherwise false - */ - protected function checkBrowserFirebird() - { - if (stripos($this->_agent, 'Firebird') !== false) { - $aversion = explode('/', stristr($this->_agent, 'Firebird')); - if (isset($aversion[1])) { - $this->setVersion($aversion[1]); - $this->setBrowser(self::BROWSER_FIREBIRD); - return true; - } - } - return false; - } - - /** - * Determine if the browser is Netscape Navigator 9+ or not (last updated 1.7) - * NOTE: (http://browser.netscape.com/ - Official support ended on March 1st, 2008) - * @return boolean True if the browser is Netscape Navigator 9+ otherwise false - */ - protected function checkBrowserNetscapeNavigator9Plus() - { - if (stripos($this->_agent, 'Firefox') !== false && preg_match('/Navigator\/([^ ]*)/i', $this->_agent, $matches)) { - $this->setVersion($matches[1]); - $this->setBrowser(self::BROWSER_NETSCAPE_NAVIGATOR); - return true; - } else if (stripos($this->_agent, 'Firefox') === false && preg_match('/Netscape6?\/([^ ]*)/i', $this->_agent, $matches)) { - $this->setVersion($matches[1]); - $this->setBrowser(self::BROWSER_NETSCAPE_NAVIGATOR); - return true; - } - return false; - } - - /** - * Determine if the browser is Shiretoko or not (https://wiki.mozilla.org/Projects/shiretoko) (last updated 1.7) - * @return boolean True if the browser is Shiretoko otherwise false - */ - protected function checkBrowserShiretoko() - { - if (stripos($this->_agent, 'Mozilla') !== false && preg_match('/Shiretoko\/([^ ]*)/i', $this->_agent, $matches)) { - $this->setVersion($matches[1]); - $this->setBrowser(self::BROWSER_SHIRETOKO); - return true; - } - return false; - } - - /** - * Determine if the browser is Ice Cat or not (http://en.wikipedia.org/wiki/GNU_IceCat) (last updated 1.7) - * @return boolean True if the browser is Ice Cat otherwise false - */ - protected function checkBrowserIceCat() - { - if (stripos($this->_agent, 'Mozilla') !== false && preg_match('/IceCat\/([^ ]*)/i', $this->_agent, $matches)) { - $this->setVersion($matches[1]); - $this->setBrowser(self::BROWSER_ICECAT); - return true; - } - return false; - } - - /** - * Determine if the browser is Nokia or not (last updated 1.7) - * @return boolean True if the browser is Nokia otherwise false - */ - protected function checkBrowserNokia() - { - if (preg_match("/Nokia([^\/]+)\/([^ SP]+)/i", $this->_agent, $matches)) { - $this->setVersion($matches[2]); - if (stripos($this->_agent, 'Series60') !== false || strpos($this->_agent, 'S60') !== false) { - $this->setBrowser(self::BROWSER_NOKIA_S60); - } else { - $this->setBrowser(self::BROWSER_NOKIA); - } - $this->setMobile(true); - return true; - } - return false; - } - - /** - * Determine if the browser is Firefox or not (last updated 1.7) - * @return boolean True if the browser is Firefox otherwise false - */ - protected function checkBrowserFirefox() - { - if (stripos($this->_agent, 'safari') === false) { - if (preg_match("/Firefox[\/ \(]([^ ;\)]+)/i", $this->_agent, $matches)) { - $this->setVersion($matches[1]); - $this->setBrowser(self::BROWSER_FIREFOX); - //Firefox on Android - if (stripos($this->_agent, 'Android') !== false) { - if (stripos($this->_agent, 'Mobile') !== false) { - $this->setMobile(true); - } else { - $this->setTablet(true); - } - } - return true; - } else if (preg_match("/Firefox$/i", $this->_agent, $matches)) { - $this->setVersion(""); - $this->setBrowser(self::BROWSER_FIREFOX); - return true; - } - } - return false; - } - - /** - * Determine if the browser is Firefox or not (last updated 1.7) - * @return boolean True if the browser is Firefox otherwise false - */ - protected function checkBrowserIceweasel() - { - if (stripos($this->_agent, 'Iceweasel') !== false) { - $aresult = explode('/', stristr($this->_agent, 'Iceweasel')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - $this->setBrowser(self::BROWSER_ICEWEASEL); - return true; - } - } - return false; - } - - /** - * Determine if the browser is Mozilla or not (last updated 1.7) - * @return boolean True if the browser is Mozilla otherwise false - */ - protected function checkBrowserMozilla() - { - if (stripos($this->_agent, 'mozilla') !== false && preg_match('/rv:[0-9].[0-9][a-b]?/i', $this->_agent) && stripos($this->_agent, 'netscape') === false) { - $aversion = explode(' ', stristr($this->_agent, 'rv:')); - preg_match('/rv:[0-9].[0-9][a-b]?/i', $this->_agent, $aversion); - $this->setVersion(str_replace('rv:', '', $aversion[0])); - $this->setBrowser(self::BROWSER_MOZILLA); - return true; - } else if (stripos($this->_agent, 'mozilla') !== false && preg_match('/rv:[0-9]\.[0-9]/i', $this->_agent) && stripos($this->_agent, 'netscape') === false) { - $aversion = explode('', stristr($this->_agent, 'rv:')); - $this->setVersion(str_replace('rv:', '', $aversion[0])); - $this->setBrowser(self::BROWSER_MOZILLA); - return true; - } else if (stripos($this->_agent, 'mozilla') !== false && preg_match('/mozilla\/([^ ]*)/i', $this->_agent, $matches) && stripos($this->_agent, 'netscape') === false) { - $this->setVersion($matches[1]); - $this->setBrowser(self::BROWSER_MOZILLA); - return true; - } - return false; - } - - /** - * Determine if the browser is Lynx or not (last updated 1.7) - * @return boolean True if the browser is Lynx otherwise false - */ - protected function checkBrowserLynx() - { - if (stripos($this->_agent, 'lynx') !== false) { - $aresult = explode('/', stristr($this->_agent, 'Lynx')); - $aversion = explode(' ', (isset($aresult[1]) ? $aresult[1] : "")); - $this->setVersion($aversion[0]); - $this->setBrowser(self::BROWSER_LYNX); - return true; - } - return false; - } - - /** - * Determine if the browser is Amaya or not (last updated 1.7) - * @return boolean True if the browser is Amaya otherwise false - */ - protected function checkBrowserAmaya() - { - if (stripos($this->_agent, 'amaya') !== false) { - $aresult = explode('/', stristr($this->_agent, 'Amaya')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - $this->setBrowser(self::BROWSER_AMAYA); - return true; - } - } - return false; - } - - /** - * Determine if the browser is Safari or not (last updated 1.7) - * @return boolean True if the browser is Safari otherwise false - */ - protected function checkBrowserSafari() - { - if (stripos($this->_agent, 'Safari') !== false - && stripos($this->_agent, 'iPhone') === false - && stripos($this->_agent, 'iPod') === false - ) { - - $aresult = explode('/', stristr($this->_agent, 'Version')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - } else { - $this->setVersion(self::VERSION_UNKNOWN); - } - $this->setBrowser(self::BROWSER_SAFARI); - return true; - } - return false; - } - - protected function checkBrowserSamsung() - { - if (stripos($this->_agent, 'SamsungBrowser') !== false) { - - $aresult = explode('/', stristr($this->_agent, 'SamsungBrowser')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - } else { - $this->setVersion(self::VERSION_UNKNOWN); - } - $this->setBrowser(self::BROWSER_SAMSUNG); - return true; - } - return false; - } - - protected function checkBrowserSilk() - { - if (stripos($this->_agent, 'Silk') !== false) { - $aresult = explode('/', stristr($this->_agent, 'Silk')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - } else { - $this->setVersion(self::VERSION_UNKNOWN); - } - $this->setBrowser(self::BROWSER_SILK); - return true; - } - return false; - } - - protected function checkBrowserIframely() - { - if (stripos($this->_agent, 'Iframely') !== false) { - $aresult = explode('/', stristr($this->_agent, 'Iframely')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - } else { - $this->setVersion(self::VERSION_UNKNOWN); - } - $this->setBrowser(self::BROWSER_I_FRAME); - return true; - } - return false; - } - - protected function checkBrowserCocoa() - { - if (stripos($this->_agent, 'CocoaRestClient') !== false) { - $aresult = explode('/', stristr($this->_agent, 'CocoaRestClient')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - } else { - $this->setVersion(self::VERSION_UNKNOWN); - } - $this->setBrowser(self::BROWSER_COCOA); - return true; - } - return false; - } - - /** - * Detect if URL is loaded from FacebookExternalHit - * @return boolean True if it detects FacebookExternalHit otherwise false - */ - protected function checkFacebookExternalHit() - { - if (stristr($this->_agent, 'FacebookExternalHit')) { - $this->setRobot(true); - $this->setFacebook(true); - return true; - } - return false; - } - - /** - * Detect if URL is being loaded from internal Facebook browser - * @return boolean True if it detects internal Facebook browser otherwise false - */ - protected function checkForFacebookIos() - { - if (stristr($this->_agent, 'FBIOS')) { - $this->setFacebook(true); - return true; - } - return false; - } - - /** - * Detect Version for the Safari browser on iOS devices - * @return boolean True if it detects the version correctly otherwise false - */ - protected function getSafariVersionOnIos() - { - $aresult = explode('/', stristr($this->_agent, 'Version')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - return true; - } - return false; - } - - /** - * Detect Version for the Chrome browser on iOS devices - * @return boolean True if it detects the version correctly otherwise false - */ - protected function getChromeVersionOnIos() - { - $aresult = explode('/', stristr($this->_agent, 'CriOS')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - $this->setBrowser(self::BROWSER_CHROME); - return true; - } - return false; - } - - /** - * Determine if the browser is iPhone or not (last updated 1.7) - * @return boolean True if the browser is iPhone otherwise false - */ - protected function checkBrowseriPhone() - { - if (stripos($this->_agent, 'iPhone') !== false) { - $this->setVersion(self::VERSION_UNKNOWN); - $this->setBrowser(self::BROWSER_IPHONE); - $this->getSafariVersionOnIos(); - $this->getChromeVersionOnIos(); - $this->checkForFacebookIos(); - $this->setMobile(true); - return true; - - } - return false; - } - - /** - * Determine if the browser is iPad or not (last updated 1.7) - * @return boolean True if the browser is iPad otherwise false - */ - protected function checkBrowseriPad() - { - if (stripos($this->_agent, 'iPad') !== false) { - $this->setVersion(self::VERSION_UNKNOWN); - $this->setBrowser(self::BROWSER_IPAD); - $this->getSafariVersionOnIos(); - $this->getChromeVersionOnIos(); - $this->checkForFacebookIos(); - $this->setTablet(true); - return true; - } - return false; - } - - /** - * Determine if the browser is iPod or not (last updated 1.7) - * @return boolean True if the browser is iPod otherwise false - */ - protected function checkBrowseriPod() - { - if (stripos($this->_agent, 'iPod') !== false) { - $this->setVersion(self::VERSION_UNKNOWN); - $this->setBrowser(self::BROWSER_IPOD); - $this->getSafariVersionOnIos(); - $this->getChromeVersionOnIos(); - $this->checkForFacebookIos(); - $this->setMobile(true); - return true; - } - return false; - } - - /** - * Determine if the browser is Android or not (last updated 1.7) - * @return boolean True if the browser is Android otherwise false - */ - protected function checkBrowserAndroid() - { - if (stripos($this->_agent, 'Android') !== false) { - $aresult = explode(' ', stristr($this->_agent, 'Android')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - } else { - $this->setVersion(self::VERSION_UNKNOWN); - } - if (stripos($this->_agent, 'Mobile') !== false) { - $this->setMobile(true); - } else { - $this->setTablet(true); - } - $this->setBrowser(self::BROWSER_ANDROID); - return true; - } - return false; - } - - /** - * Determine if the browser is Vivaldi - * @return boolean True if the browser is Vivaldi otherwise false - */ - protected function checkBrowserVivaldi() - { - if (stripos($this->_agent, 'Vivaldi') !== false) { - $aresult = explode('/', stristr($this->_agent, 'Vivaldi')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - $this->setBrowser(self::BROWSER_VIVALDI); - return true; - } - } - return false; - } - - /** - * Determine if the browser is Yandex - * @return boolean True if the browser is Yandex otherwise false - */ - protected function checkBrowserYandex() - { - if (stripos($this->_agent, 'YaBrowser') !== false) { - $aresult = explode('/', stristr($this->_agent, 'YaBrowser')); - if (isset($aresult[1])) { - $aversion = explode(' ', $aresult[1]); - $this->setVersion($aversion[0]); - $this->setBrowser(self::BROWSER_YANDEX); - - if (stripos($this->_agent, 'iPad') !== false) { - $this->setTablet(true); - } elseif (stripos($this->_agent, 'Mobile') !== false) { - $this->setMobile(true); - } elseif (stripos($this->_agent, 'Android') !== false) { - $this->setTablet(true); - } - - return true; - } - } - - return false; - } - - /** - * Determine if the browser is a PlayStation - * @return boolean True if the browser is PlayStation otherwise false - */ - protected function checkBrowserPlayStation() - { - if (stripos($this->_agent, 'PlayStation ') !== false) { - $aresult = explode(' ', stristr($this->_agent, 'PlayStation ')); - $this->setBrowser(self::BROWSER_PLAYSTATION); - if (isset($aresult[0])) { - $aversion = explode(')', $aresult[2]); - $this->setVersion($aversion[0]); - if (stripos($this->_agent, 'Portable)') !== false || stripos($this->_agent, 'Vita') !== false) { - $this->setMobile(true); - } - return true; - } - } - return false; - } - - /** - * Determine the user's platform (last updated 2.0) - */ - protected function checkPlatform() - { - if (stripos($this->_agent, 'windows') !== false) { - $this->_platform = self::PLATFORM_WINDOWS; - } else if (stripos($this->_agent, 'iPad') !== false) { - $this->_platform = self::PLATFORM_IPAD; - } else if (stripos($this->_agent, 'iPod') !== false) { - $this->_platform = self::PLATFORM_IPOD; - } else if (stripos($this->_agent, 'iPhone') !== false) { - $this->_platform = self::PLATFORM_IPHONE; - } elseif (stripos($this->_agent, 'mac') !== false) { - $this->_platform = self::PLATFORM_APPLE; - } elseif (stripos($this->_agent, 'android') !== false) { - $this->_platform = self::PLATFORM_ANDROID; - } elseif (stripos($this->_agent, 'Silk') !== false) { - $this->_platform = self::PLATFORM_FIRE_OS; - } elseif (stripos($this->_agent, 'linux') !== false && stripos($this->_agent, 'SMART-TV') !== false) { - $this->_platform = self::PLATFORM_LINUX . '/' . self::PLATFORM_SMART_TV; - } elseif (stripos($this->_agent, 'linux') !== false) { - $this->_platform = self::PLATFORM_LINUX; - } else if (stripos($this->_agent, 'Nokia') !== false) { - $this->_platform = self::PLATFORM_NOKIA; - } else if (stripos($this->_agent, 'BlackBerry') !== false) { - $this->_platform = self::PLATFORM_BLACKBERRY; - } elseif (stripos($this->_agent, 'FreeBSD') !== false) { - $this->_platform = self::PLATFORM_FREEBSD; - } elseif (stripos($this->_agent, 'OpenBSD') !== false) { - $this->_platform = self::PLATFORM_OPENBSD; - } elseif (stripos($this->_agent, 'NetBSD') !== false) { - $this->_platform = self::PLATFORM_NETBSD; - } elseif (stripos($this->_agent, 'OpenSolaris') !== false) { - $this->_platform = self::PLATFORM_OPENSOLARIS; - } elseif (stripos($this->_agent, 'SunOS') !== false) { - $this->_platform = self::PLATFORM_SUNOS; - } elseif (stripos($this->_agent, 'OS\/2') !== false) { - $this->_platform = self::PLATFORM_OS2; - } elseif (stripos($this->_agent, 'BeOS') !== false) { - $this->_platform = self::PLATFORM_BEOS; - } elseif (stripos($this->_agent, 'win') !== false) { - $this->_platform = self::PLATFORM_WINDOWS; - } elseif (stripos($this->_agent, 'Playstation') !== false) { - $this->_platform = self::PLATFORM_PLAYSTATION; - } elseif (stripos($this->_agent, 'Roku') !== false) { - $this->_platform = self::PLATFORM_ROKU; - } elseif (stripos($this->_agent, 'iOS') !== false) { - $this->_platform = self::PLATFORM_IPHONE . '/' . self::PLATFORM_IPAD; - } elseif (stripos($this->_agent, 'tvOS') !== false) { - $this->_platform = self::PLATFORM_APPLE_TV; - } elseif (stripos($this->_agent, 'curl') !== false) { - $this->_platform = self::PLATFORM_TERMINAL; - } elseif (stripos($this->_agent, 'CrOS') !== false) { - $this->_platform = self::PLATFORM_CHROME_OS; - } elseif (stripos($this->_agent, 'okhttp') !== false) { - $this->_platform = self::PLATFORM_JAVA_ANDROID; - } elseif (stripos($this->_agent, 'PostmanRuntime') !== false) { - $this->_platform = self::PLATFORM_POSTMAN; - } elseif (stripos($this->_agent, 'Iframely') !== false) { - $this->_platform = self::PLATFORM_I_FRAME; - } - - } - } -} \ No newline at end of file diff --git a/libraries/index.html b/libraries/index.html deleted file mode 100644 index 566549b..0000000 --- a/libraries/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - - Title - - - - - \ No newline at end of file diff --git a/libraries/plugins/IDS/.htaccess b/libraries/plugins/IDS/.htaccess deleted file mode 100644 index 878d02a..0000000 --- a/libraries/plugins/IDS/.htaccess +++ /dev/null @@ -1,5 +0,0 @@ -# in case PHPIDS is placed in the web-root -deny from all - -# silence is golden -php_flag display_errors off \ No newline at end of file diff --git a/libraries/plugins/IDS/Caching/Apc.php b/libraries/plugins/IDS/Caching/Apc.php deleted file mode 100644 index 405aca3..0000000 --- a/libraries/plugins/IDS/Caching/Apc.php +++ /dev/null @@ -1,151 +0,0 @@ -. - * - * PHP version 5.1.6+ - * - * @category Security - * @package PHPIDS - * @author Mario Heiderich - * @author Christian Matthies - * @author Lars Strojny - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ - -require_once 'IDS/Caching/Interface.php'; - -/** - * APC caching wrapper - * - * This class inhabits functionality to get and set cache via memcached. - * - * @category Security - * @package PHPIDS - * @author Yves Berkholz - * @copyright 2007-2009 The PHPIDS Groupoup - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @version Release: $Id$ - * @link http://php-ids.org/ - * @since Version 0.6.5 - */ -class IDS_Caching_Apc implements IDS_Caching_Interface -{ - - /** - * Caching type - * - * @var string - */ - private $type = null; - - /** - * Cache configuration - * - * @var array - */ - private $config = null; - - /** - * Flag if the filter storage has been found in memcached - * - * @var boolean - */ - private $isCached = false; - - /** - * Holds an instance of this class - * - * @var object - */ - private static $cachingInstance = null; - - - /** - * Constructor - * - * @param string $type caching type - * @param array $init the IDS_Init object - * - * @return void - */ - public function __construct($type, $init) - { - - $this->type = $type; - $this->config = $init->config['Caching']; - } - - /** - * Returns an instance of this class - * - * @param string $type caching type - * @param object $init the IDS_Init object - * - * @return object $this - */ - public static function getInstance($type, $init) - { - - if (!self::$cachingInstance) { - self::$cachingInstance = new IDS_Caching_Apc($type, $init); - } - - return self::$cachingInstance; - } - - /** - * Writes cache data - * - * @param array $data the caching data - * - * @return object $this - */ - public function setCache(array $data) - { - if(!$this->isCached) - apc_store($this->config['key_prefix'] . '.storage', - $data, $this->config['expiration_time']); - return $this; - } - - /** - * Returns the cached data - * - * Note that this method returns false if either type or file cache is - * not set - * - * @return mixed cache data or false - */ - public function getCache() - { - $data = apc_fetch($this->config['key_prefix'] . '.storage'); - $this->isCached = !empty($data); - return $data; - } -} - -/** - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 expandtab - */ diff --git a/libraries/plugins/IDS/Caching/Database.php b/libraries/plugins/IDS/Caching/Database.php deleted file mode 100644 index 86b7498..0000000 --- a/libraries/plugins/IDS/Caching/Database.php +++ /dev/null @@ -1,291 +0,0 @@ -. - * - * PHP version 5.1.6+ - * - * @category Security - * @package PHPIDS - * @author Mario Heiderich - * @author Christian Matthies - * @author Lars Strojny - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ - -require_once 'IDS/Caching/Interface.php'; - -/** - * Needed SQL: - * - - #create the database - - CREATE DATABASE IF NOT EXISTS `phpids` DEFAULT CHARACTER - SET utf8 COLLATE utf8_general_ci; - DROP TABLE IF EXISTS `cache`; - - #now select the created datbase and create the table - - CREATE TABLE `cache` ( - `type` VARCHAR( 32 ) NOT null , - `data` TEXT NOT null , - `created` DATETIME NOT null , - `modified` DATETIME NOT null - ) ENGINE = MYISAM ; - */ - -/** - * Database caching wrapper - * - * This class inhabits functionality to get and set cache via a database. - * - * @category Security - * @package PHPIDS - * @author Christian Matthies - * @author Mario Heiderich - * @author Lars Strojny - * @copyright 2007-2009 The PHPIDS Groupup - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @version Release: $Id:Database.php 517 2007-09-15 15:04:13Z mario $ - * @link http://php-ids.org/ - * @since Version 0.4 - */ -class IDS_Caching_Database implements IDS_Caching_Interface -{ - - /** - * Caching type - * - * @var string - */ - private $type = null; - - /** - * Cache configuration - * - * @var array - */ - private $config = null; - - /** - * DBH - * - * @var object - */ - private $handle = null; - - /** - * Holds an instance of this class - * - * @var object - */ - private static $cachingInstance = null; - - /** - * Constructor - * - * Connects to database. - * - * @param string $type caching type - * @param object $init the IDS_Init object - * - * @return void - */ - public function __construct($type, $init) - { - - $this->type = $type; - $this->config = $init->config['Caching']; - $this->handle = $this->_connect(); - } - - /** - * Returns an instance of this class - * - * @static - * @param string $type caching type - * @param object $init the IDS_Init object - * - * @return object $this - */ - public static function getInstance($type, $init) - { - - if (!self::$cachingInstance) { - self::$cachingInstance = new IDS_Caching_Database($type, $init); - } - return self::$cachingInstance; - } - - /** - * Writes cache data into the database - * - * @param array $data the caching data - * - * @throws PDOException if a db error occurred - * @return object $this - */ - public function setCache(array $data) - { - - $handle = $this->handle; - - $rows = $handle->query('SELECT created FROM `' . - $this->config['table'].'`'); - - if (!$rows || $rows->rowCount() === 0) { - - $this->_write($handle, $data); - } else { - - foreach ($rows as $row) { - - if ((time()-strtotime($row['created'])) > - $this->config['expiration_time']) { - - $this->_write($handle, $data); - } - } - } - - return $this; - } - - /** - * Returns the cached data - * - * Note that this method returns false if either type or file cache is - * not set - * - * @throws PDOException if a db error occurred - * @return mixed cache data or false - */ - public function getCache() - { - - try{ - $handle = $this->handle; - $result = $handle->prepare('SELECT * FROM `' . - $this->config['table'] . - '` where type=?'); - $result->execute(array($this->type)); - - foreach ($result as $row) { - return unserialize($row['data']); - } - - } catch (PDOException $e) { - throw new PDOException('PDOException: ' . $e->getMessage()); - } - return false; - } - - /** - * Connect to database and return a handle - * - * @return object PDO - * @throws Exception if connection parameters are faulty - * @throws PDOException if a db error occurred - */ - private function _connect() - { - - // validate connection parameters - if (!$this->config['wrapper'] - || !$this->config['user'] - || !$this->config['password'] - || !$this->config['table']) { - - throw new Exception(' - Insufficient connection parameters' - ); - } - - // try to connect - try { - $handle = new PDO( - $this->config['wrapper'], - $this->config['user'], - $this->config['password'] - ); - $handle->setAttribute( - PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true - ); - - } catch (PDOException $e) { - throw new PDOException('PDOException: ' . $e->getMessage()); - } - return $handle; - } - - /** - * Write the cache data to the table - * - * @param object $handle the database handle - * @param array $data the caching data - * - * @return object PDO - * @throws PDOException if a db error occurred - */ - private function _write($handle, $data) - { - - try { - $handle->query('TRUNCATE ' . - $this->config['table'].''); - $statement = $handle->prepare(' - INSERT INTO `' . - $this->config['table'].'` ( - type, - data, - created, - modified - ) - VALUES ( - :type, - :data, - now(), - now() - ) - '); - - $statement->bindParam('type', - $handle->quote($this->type)); - $statement->bindParam('data', serialize($data)); - - if (!$statement->execute()) { - throw new PDOException($statement->errorCode()); - } - - } catch (PDOException $e) { - throw new PDOException('PDOException: ' . $e->getMessage()); - } - } -} - -/** - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 expandtab - */ diff --git a/libraries/plugins/IDS/Caching/Factory.php b/libraries/plugins/IDS/Caching/Factory.php deleted file mode 100644 index 1711acb..0000000 --- a/libraries/plugins/IDS/Caching/Factory.php +++ /dev/null @@ -1,94 +0,0 @@ -. - * - * PHP version 5.1.6+ - * - * @category Security - * @package PHPIDS - * @author Mario Heiderich - * @author Christian Matthies - * @author Lars Strojny - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ - -/** - * Caching factory - * - * This class is used as a factory to load the correct concrete caching - * implementation. - * - * @category Security - * @package PHPIDS - * @author Christian Matthies - * @author Mario Heiderich - * @author Lars Strojny - * @copyright 2007-2009 The PHPIDS Group - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @version Release: $Id:Factory.php 517 2007-09-15 15:04:13Z mario $ - * @link http://php-ids.org/ - * @since Version 0.4 - */ -class IDS_Caching -{ - - /** - * Factory method - * - * @param object $init the IDS_Init object - * @param string $type the caching type - * - * @return object the caching facility - */ - public static function factory($init, $type) - { - - $object = false; - $wrapper = preg_replace( - '/\W+/m', - null, - ucfirst($init->config['Caching']['caching']) - ); - $class = 'IDS_Caching_' . $wrapper; - $path = dirname(__FILE__) . DIRECTORY_SEPARATOR . - $wrapper . '.php'; - - if (file_exists($path)) { - include_once $path; - - if (class_exists($class)) { - $object = call_user_func(array($class, 'getInstance'), - $type, $init); - } - } - - return $object; - } -} - -/** - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 expandtab - */ diff --git a/libraries/plugins/IDS/Caching/File.php b/libraries/plugins/IDS/Caching/File.php deleted file mode 100644 index 5ed3986..0000000 --- a/libraries/plugins/IDS/Caching/File.php +++ /dev/null @@ -1,187 +0,0 @@ -. - * - * PHP version 5.1.6+ - * - * @category Security - * @package PHPIDS - * @author Mario Heiderich - * @author Christian Matthies - * @author Lars Strojny - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ - -require_once 'IDS/Caching/Interface.php'; - -/** - * File caching wrapper - * - * This class inhabits functionality to get and set cache via a static flatfile. - * - * @category Security - * @package PHPIDS - * @author Christian Matthies - * @author Mario Heiderich - * @author Lars Strojny - * @copyright 2007-2009 The PHPIDS Group - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @version Release: $Id:File.php 517 2007-09-15 15:04:13Z mario $ - * @link http://php-ids.org/ - * @since Version 0.4 - */ -class IDS_Caching_File implements IDS_Caching_Interface -{ - - /** - * Caching type - * - * @var string - */ - private $type = null; - - /** - * Cache configuration - * - * @var array - */ - private $config = null; - - /** - * Path to cache file - * - * @var string - */ - private $path = null; - - /** - * Holds an instance of this class - * - * @var object - */ - private static $cachingInstance = null; - - /** - * Constructor - * - * @param string $type caching type - * @param object $init the IDS_Init object - * - * @return void - */ - public function __construct($type, $init) - { - - $this->type = $type; - $this->config = $init->config['Caching']; - $this->path = $init->getBasePath() . $this->config['path']; - - if (file_exists($this->path) && !is_writable($this->path)) { - throw new Exception('Make sure all files in ' . - htmlspecialchars($this->path, ENT_QUOTES, 'UTF-8') . - 'are writeable!'); - } - } - - /** - * Returns an instance of this class - * - * @param string $type caching type - * @param object $init the IDS_Init object - * - * @return object $this - */ - public static function getInstance($type, $init) - { - if (!self::$cachingInstance) { - self::$cachingInstance = new IDS_Caching_File($type, $init); - } - - return self::$cachingInstance; - } - - /** - * Writes cache data into the file - * - * @param array $data the cache data - * - * @throws Exception if cache file couldn't be created - * @return object $this - */ - public function setCache(array $data) - { - - if (!is_writable(preg_replace('/[\/][^\/]+\.[^\/]++$/', null, - $this->path))) { - throw new Exception('Temp directory ' . - htmlspecialchars($this->path, ENT_QUOTES, 'UTF-8') . - ' seems not writable'); - } - - if ((!file_exists($this->path) || (time()-filectime($this->path)) > - $this->config['expiration_time'])) { - $handle = @fopen($this->path, 'w+'); - $serialized = @serialize($data); - - if (!$handle) { - throw new Exception("Cache file couldn't be created"); - } - if (!$serialized) { - throw new Exception("Cache data couldn't be serialized"); - } - - fwrite($handle, $serialized); - fclose($handle); - } - - return $this; - } - - /** - * Returns the cached data - * - * Note that this method returns false if either type or file cache is - * not set - * - * @return mixed cache data or false - */ - public function getCache() - { - - // make sure filters are parsed again if cache expired - if (file_exists($this->path) && (time()-filectime($this->path)) < - $this->config['expiration_time']) { - $data = unserialize(file_get_contents($this->path)); - return $data; - } - - return false; - } -} - -/** - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 expandtab - */ diff --git a/libraries/plugins/IDS/Caching/Interface.php b/libraries/plugins/IDS/Caching/Interface.php deleted file mode 100644 index d9558e8..0000000 --- a/libraries/plugins/IDS/Caching/Interface.php +++ /dev/null @@ -1,73 +0,0 @@ -. - * - * PHP version 5.1.6+ - * - * @category Security - * @package PHPIDS - * @author Mario Heiderich - * @author Christian Matthies - * @author Lars Strojny - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ - -/** - * Caching wrapper interface - * - * @category Security - * @package PHPIDS - * @author Christian Matthies - * @author Mario Heiderich - * @author Lars Strojny - * @copyright 2007-2009 The PHPIDS Group - * @version SVN: $Id:Interface.php 517 2007-09-15 15:04:13Z mario $ - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @since Version 0.4 - * @link http://php-ids.org/ - */ -interface IDS_Caching_Interface -{ - /** - * Interface method - * - * @param array $data the cache data - * - * @return void - */ - public function setCache(array $data); - - /** - * Interface method - * - * @return void - */ - public function getCache(); -} - -/** - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 expandtab - */ diff --git a/libraries/plugins/IDS/Caching/Memcached.php b/libraries/plugins/IDS/Caching/Memcached.php deleted file mode 100644 index 1d09296..0000000 --- a/libraries/plugins/IDS/Caching/Memcached.php +++ /dev/null @@ -1,195 +0,0 @@ -. - * - * PHP version 5.1.6+ - * - * @category Security - * @package PHPIDS - * @author Mario Heiderich - * @author Christian Matthies - * @author Lars Strojny - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ - -require_once 'IDS/Caching/Interface.php'; - -/** - * File caching wrapper - * - * This class inhabits functionality to get and set cache via memcached. - * - * @category Security - * @package PHPIDS - * @author Christian Matthies - * @author Mario Heiderich - * @author Lars Strojny - * @copyright 2007-2009 The PHPIDS Groupoup - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @version Release: $Id:Memcached.php 517 2007-09-15 15:04:13Z mario $ - * @link http://php-ids.org/ - * @since Version 0.4 - */ -class IDS_Caching_Memcached implements IDS_Caching_Interface -{ - - /** - * Caching type - * - * @var string - */ - private $type = null; - - /** - * Cache configuration - * - * @var array - */ - private $config = null; - - /** - * Flag if the filter storage has been found in memcached - * - * @var boolean - */ - private $isCached = false; - - /** - * Memcache object - * - * @var object - */ - private $memcache = null; - - /** - * Holds an instance of this class - * - * @var object - */ - private static $cachingInstance = null; - - - /** - * Constructor - * - * @param string $type caching type - * @param array $init the IDS_Init object - * - * @return void - */ - public function __construct($type, $init) - { - - $this->type = $type; - $this->config = $init->config['Caching']; - - $this->_connect(); - } - - /** - * Returns an instance of this class - * - * @param string $type caching type - * @param object $init the IDS_Init object - * - * @return object $this - */ - public static function getInstance($type, $init) - { - - if (!self::$cachingInstance) { - self::$cachingInstance = new IDS_Caching_Memcached($type, $init); - } - - return self::$cachingInstance; - } - - /** - * Writes cache data - * - * @param array $data the caching data - * - * @return object $this - */ - public function setCache(array $data) - { - - if(!$this->isCached) { - $this->memcache->set( - $this->config['key_prefix'] . '.storage', - $data, false, $this->config['expiration_time'] - ); - } - - return $this; - } - - /** - * Returns the cached data - * - * Note that this method returns false if either type or file cache is - * not set - * - * @return mixed cache data or false - */ - public function getCache() - { - - $data = $this->memcache->get( - $this->config['key_prefix'] . - '.storage' - ); - $this->isCached = !empty($data); - - return $data; - } - - /** - * Connect to the memcached server - * - * @throws Exception if connection parameters are insufficient - * @return void - */ - private function _connect() - { - - if ($this->config['host'] && $this->config['port']) { - // establish the memcache connection - $this->memcache = new Memcache; - $this->memcache->pconnect( - $this->config['host'], - $this->config['port'] - ); - - } else { - throw new Exception('Insufficient connection parameters'); - } - } -} - -/** - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 expandtab - */ diff --git a/libraries/plugins/IDS/Caching/Session.php b/libraries/plugins/IDS/Caching/Session.php deleted file mode 100644 index aab81f7..0000000 --- a/libraries/plugins/IDS/Caching/Session.php +++ /dev/null @@ -1,146 +0,0 @@ -. - * - * PHP version 5.1.6+ - * - * @category Security - * @package PHPIDS - * @author Mario Heiderich - * @author Christian Matthies - * @author Lars Strojny - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ - -require_once 'IDS/Caching/Interface.php'; - -/** - * File caching wrapper - * - * This class inhabits functionality to get and set cache via session. - * - * @category Security - * @package PHPIDS - * @author Christian Matthies - * @author Mario Heiderich - * @author Lars Strojny - * @copyright 2007-2009 The PHPIDS Group - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @version Release: $Id:Session.php 517 2007-09-15 15:04:13Z mario $ - * @link http://php-ids.org/ - * @since Version 0.4 - */ -class IDS_Caching_Session implements IDS_Caching_Interface -{ - - /** - * Caching type - * - * @var string - */ - private $type = null; - - /** - * Cache configuration - * - * @var array - */ - private $config = null; - - /** - * Holds an instance of this class - * - * @var object - */ - private static $cachingInstance = null; - - /** - * Constructor - * - * @param string $type caching type - * @param object $init the IDS_Init object - * - * @return void - */ - public function __construct($type, $init) - { - $this->type = $type; - $this->config = $init->config['Caching']; - } - - /** - * Returns an instance of this class - * - * @param string $type caching type - * @param object $init the IDS_Init object - * - * @return object $this - */ - public static function getInstance($type, $init) - { - - if (!self::$cachingInstance) { - self::$cachingInstance = new IDS_Caching_Session($type, $init); - } - - return self::$cachingInstance; - } - - /** - * Writes cache data into the session - * - * @param array $data the caching data - * - * @return object $this - */ - public function setCache(array $data) - { - - $_SESSION['PHPIDS'][$this->type] = $data; - return $this; - } - - /** - * Returns the cached data - * - * Note that this method returns false if either type or file cache is not set - * - * @return mixed cache data or false - */ - public function getCache() - { - - if ($this->type && $_SESSION['PHPIDS'][$this->type]) { - return $_SESSION['PHPIDS'][$this->type]; - } - - return false; - } -} - -/** - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 expandtab - */ diff --git a/libraries/plugins/IDS/Config/Config.ini.php b/libraries/plugins/IDS/Config/Config.ini.php deleted file mode 100644 index 1480a62..0000000 --- a/libraries/plugins/IDS/Config/Config.ini.php +++ /dev/null @@ -1,89 +0,0 @@ -; - -; PHPIDS Config.ini - -; General configuration settings - - -[General] - - ; basic settings - customize to make the PHPIDS work at all - filter_type = xml - - base_path = /full/path/to/IDS/ - use_base_path = false - - filter_path = default_filter.xml - tmp_path = tmp - scan_keys = false - - ; in case you want to use a different HTMLPurifier source, specify it here - ; By default, those files are used that are being shipped with PHPIDS - HTML_Purifier_Path = vendors/htmlpurifier/HTMLPurifier.auto.php - HTML_Purifier_Cache = vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer - - ; define which fields contain html and need preparation before - ; hitting the PHPIDS rules (new in PHPIDS 0.5) - ;html[] = POST.__wysiwyg - - ; define which fields contain JSON data and should be treated as such - ; for fewer false positives (new in PHPIDS 0.5.3) - ;json[] = POST.__jsondata - - ; define which fields shouldn't be monitored (a[b]=c should be referenced via a.b) - exceptions[] = GET.__utmz - exceptions[] = GET.__utmc - - ; you can use regular expressions for wildcard exceptions - example: /.*foo/i - - ; PHPIDS should run with PHP 5.1.2 but this is untested - set - ; this value to force compatibilty with minor versions - min_php_version = 5.1.6 - -; If you use the PHPIDS logger you can define specific configuration here - -[Logging] - - ; file logging - path = tmp/phpids_log.txt - - ; email logging - - ; note that enabling safemode you can prevent spam attempts, - ; see documentation - recipients[] = test@test.com.invalid - subject = "PHPIDS detected an intrusion attempt!" - header = "From: info@phpids.org" - envelope = "" - safemode = true - urlencode = true - allowed_rate = 15 - - ; database logging - - wrapper = "mysql:host=localhost;port=3306;dbname=phpids" - user = phpids_user - password = 123456 - table = intrusions - -; If you would like to use other methods than file caching you can configure them here - -[Caching] - - ; caching: session|file|database|memcached|none - caching = file - expiration_time = 600 - - ; file cache - path = tmp/default_filter.cache - - ; database cache - wrapper = "mysql:host=localhost;port=3306;dbname=phpids" - user = phpids_user - password = 123456 - table = cache - - ; memcached - ;host = localhost - ;port = 11211 - ;key_prefix = PHPIDS diff --git a/libraries/plugins/IDS/Converter.php b/libraries/plugins/IDS/Converter.php deleted file mode 100644 index 4f38725..0000000 --- a/libraries/plugins/IDS/Converter.php +++ /dev/null @@ -1,750 +0,0 @@ -. - * - * PHP version 5.1.6+ - * - * @category Security - * @package PHPIDS - * @author Mario Heiderich - * @author Christian Matthies - * @author Lars Strojny - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ - -/** - * PHPIDS specific utility class to convert charsets manually - * - * Note that if you make use of IDS_Converter::runAll(), existing class - * methods will be executed in the same order as they are implemented in the - * class tree! - * - * @category Security - * @package PHPIDS - * @author Christian Matthies - * @author Mario Heiderich - * @author Lars Strojny - * @copyright 2007-2009 The PHPIDS Group - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @version Release: $Id:Converter.php 517 2007-09-15 15:04:13Z mario $ - * @link http://php-ids.org/ - */ -class IDS_Converter -{ - /** - * Runs all converter functions - * - * Note that if you make use of IDS_Converter::runAll(), existing class - * methods will be executed in the same order as they are implemented in the - * class tree! - * - * @param string $value the value to convert - * - * @static - * @return string - */ - public static function runAll($value) - { - foreach (get_class_methods(__CLASS__) as $method) { - - if (strpos($method, 'run') === 0) { - continue; - } - $value = self::$method($value); - } - - return $value; - } - - /** - * Check for comments and erases them if available - * - * @param string $value the value to convert - * - * @static - * @return string - */ - public static function convertFromCommented($value) - { - // check for existing comments - if (preg_match('/(?:\|\/\*|\*\/|\/\/\W*\w+\s*$)|' . - '(?:--[^-]*-)/ms', $value)) { - - $pattern = array( - '/(?:(?:))/ms', - '/(?:(?:\/\*\/*[^\/\*]*)+\*\/)/ms', - '/(?:--[^-]*-)/ms' - ); - - $converted = preg_replace($pattern, ';', $value); - $value .= "\n" . $converted; - } - - //make sure inline comments are detected and converted correctly - $value = preg_replace('/(<\w+)\/+(\w+=?)/m', '$1/$2', $value); - $value = preg_replace('/[^\\\:]\/\/(.*)$/m', '/**/$1', $value); - $value = preg_replace('/([^\-&])#.*[\r\n\v\f]/m', '$1', $value); - $value = preg_replace('/([^&\-])#.*\n/m', '$1 ', $value); - $value = preg_replace('/^#.*\n/m', ' ', $value); - - return $value; - } - - /** - * Strip newlines - * - * @param string $value the value to convert - * - * @static - * @return string - */ - public static function convertFromWhiteSpace($value) - { - //check for inline linebreaks - $search = array('\r', '\n', '\f', '\t', '\v'); - $value = str_replace($search, ';', $value); - - // replace replacement characters regular spaces - $value = str_replace('�', ' ', $value); - - //convert real linebreaks - return preg_replace('/(?:\n|\r|\v)/m', ' ', $value); - } - - /** - * Checks for common charcode pattern and decodes them - * - * @param string $value the value to convert - * - * @static - * @return string - */ - public static function convertFromJSCharcode($value) - { - $matches = array(); - - // check if value matches typical charCode pattern - if (preg_match_all('/(?:[\d+-=\/\* ]+(?:\s?,\s?[\d+-=\/\* ]+)){4,}/ms', - $value, $matches)) { - - $converted = ''; - $string = implode(',', $matches[0]); - $string = preg_replace('/\s/', '', $string); - $string = preg_replace('/\w+=/', '', $string); - $charcode = explode(',', $string); - - foreach ($charcode as $char) { - $char = preg_replace('/\W0/s', '', $char); - - if (preg_match_all('/\d*[+-\/\* ]\d+/', $char, $matches)) { - $match = preg_split('/(\W?\d+)/', - (implode('', $matches[0])), - null, - PREG_SPLIT_DELIM_CAPTURE); - - if (array_sum($match) >= 20 && array_sum($match) <= 127) { - $converted .= chr(array_sum($match)); - } - - } elseif (!empty($char) && $char >= 20 && $char <= 127) { - $converted .= chr($char); - } - } - - $value .= "\n" . $converted; - } - - // check for octal charcode pattern - if (preg_match_all('/(?:(?:[\\\]+\d+[ \t]*){8,})/ims', $value, $matches)) { - - $converted = ''; - $charcode = explode('\\', preg_replace('/\s/', '', implode(',', - $matches[0]))); - - foreach ($charcode as $char) { - if (!empty($char)) { - if (octdec($char) >= 20 && octdec($char) <= 127) { - $converted .= chr(octdec($char)); - } - } - } - $value .= "\n" . $converted; - } - - // check for hexadecimal charcode pattern - if (preg_match_all('/(?:(?:[\\\]+\w+\s*){8,})/ims', $value, $matches)) { - - $converted = ''; - $charcode = explode('\\', preg_replace('/[ux]/', '', implode(',', - $matches[0]))); - - foreach ($charcode as $char) { - if (!empty($char)) { - if (hexdec($char) >= 20 && hexdec($char) <= 127) { - $converted .= chr(hexdec($char)); - } - } - } - $value .= "\n" . $converted; - } - - return $value; - } - - /** - * Eliminate JS regex modifiers - * - * @param string $value the value to convert - * - * @static - * @return string - */ - public static function convertJSRegexModifiers($value) - { - $value = preg_replace('/\/[gim]+/', '/', $value); - - return $value; - } - - /** - * Converts from hex/dec entities - * - * @param string $value the value to convert - * - * @static - * @return string - */ - public static function convertEntities($value) - { - $converted = null; - - //deal with double encoded payload - $value = preg_replace('/&/', '&', $value); - - if (preg_match('/&#x?[\w]+/ms', $value)) { - $converted = preg_replace('/(&#x?[\w]{2}\d?);?/ms', '$1;', $value); - $converted = html_entity_decode($converted, ENT_QUOTES, 'UTF-8'); - $value .= "\n" . str_replace(';;', ';', $converted); - } - // normalize obfuscated protocol handlers - $value = preg_replace( - '/(?:j\s*a\s*v\s*a\s*s\s*c\s*r\s*i\s*p\s*t\s*:)|(d\s*a\s*t\s*a\s*:)/ms', - 'javascript:', $value - ); - - return $value; - } - - /** - * Normalize quotes - * - * @param string $value the value to convert - * - * @static - * @return string - */ - public static function convertQuotes($value) - { - // normalize different quotes to " - $pattern = array('\'', '`', '´', '’', '‘'); - $value = str_replace($pattern, '"', $value); - - //make sure harmless quoted strings don't generate false alerts - $value = preg_replace('/^"([^"=\\!><~]+)"$/', '$1', $value); - - return $value; - } - - /** - * Converts SQLHEX to plain text - * - * @param string $value the value to convert - * - * @static - * @return string - */ - public static function convertFromSQLHex($value) - { - $matches = array(); - if(preg_match_all('/(?:(?:\A|[^\d])0x[a-f\d]{3,}[a-f\d]*)+/im', $value, $matches)) { - foreach($matches[0] as $match) { - $converted = ''; - foreach(str_split($match, 2) as $hex_index) { - if(preg_match('/[a-f\d]{2,3}/i', $hex_index)) { - $converted .= chr(hexdec($hex_index)); - } - } - $value = str_replace($match, $converted, $value); - } - } - // take care of hex encoded ctrl chars - $value = preg_replace('/0x\d+/m', ' 1 ', $value); - - return $value; - } - - /** - * Converts basic SQL keywords and obfuscations - * - * @param string $value the value to convert - * - * @static - * @return string - */ - public static function convertFromSQLKeywords($value) - { - $pattern = array('/(?:is\s+null)|(like\s+null)|' . - '(?:(?:^|\W)in[+\s]*\([\s\d"]+[^()]*\))/ims'); - $value = preg_replace($pattern, '"=0', $value); - - $value = preg_replace('/[^\w\)]+\s*like\s*[^\w\s]+/ims', '1" OR "1"', $value); - $value = preg_replace('/null([,"\s])/ims', '0$1', $value); - $value = preg_replace('/\d+\./ims', ' 1', $value); - $value = preg_replace('/,null/ims', ',0', $value); - $value = preg_replace('/(?:between)/ims', 'or', $value); - $value = preg_replace('/(?:and\s+\d+\.?\d*)/ims', '', $value); - $value = preg_replace('/(?:\s+and\s+)/ims', ' or ', $value); - - $pattern = array('/(?:not\s+between)|(?:is\s+not)|(?:not\s+in)|' . - '(?:xor|<>|rlike(?:\s+binary)?)|' . - '(?:regexp\s+binary)|' . - '(?:sounds\s+like)/ims'); - $value = preg_replace($pattern, '!', $value); - $value = preg_replace('/"\s+\d/', '"', $value); - $value = preg_replace('/(\W)div(\W)/ims', '$1 OR $2', $value); - $value = preg_replace('/\/(?:\d+|null)/', null, $value); - - return $value; - } - - /** - * Detects nullbytes and controls chars via ord() - * - * @param string $value the value to convert - * - * @static - * @return string - */ - public static function convertFromControlChars($value) - { - // critical ctrl values - $search = array( - chr(0), chr(1), chr(2), chr(3), chr(4), chr(5), - chr(6), chr(7), chr(8), chr(11), chr(12), chr(14), - chr(15), chr(16), chr(17), chr(18), chr(19), chr(24), - chr(25), chr(192), chr(193), chr(238), chr(255), '\\0' - ); - - $value = str_replace($search, '%00', $value); - - //take care for malicious unicode characters - $value = urldecode(preg_replace('/(?:%E(?:2|3)%8(?:0|1)%(?:A|8|9)' . - '\w|%EF%BB%BF|%EF%BF%BD)|(?:&#(?:65|8)\d{3};?)/i', null, - urlencode($value))); - $value = urldecode( - preg_replace('/(?:%F0%80%BE)/i', '>', urlencode($value))); - $value = urldecode( - preg_replace('/(?:%F0%80%BC)/i', '<', urlencode($value))); - $value = urldecode( - preg_replace('/(?:%F0%80%A2)/i', '"', urlencode($value))); - $value = urldecode( - preg_replace('/(?:%F0%80%A7)/i', '\'', urlencode($value))); - - $value = preg_replace('/(?:%ff1c)/', '<', $value); - $value = preg_replace( - '/(?:&[#x]*(200|820|200|820|zwn?j|lrm|rlm)\w?;?)/i', null,$value - ); - $value = preg_replace('/(?:&#(?:65|8)\d{3};?)|' . - '(?:&#(?:56|7)3\d{2};?)|' . - '(?:&#x(?:fe|20)\w{2};?)|' . - '(?:&#x(?:d[c-f])\w{2};?)/i', null, - $value); - - $value = str_replace( - array('«', '〈', '<', '‹', '〈', '⟨'), '<', $value - ); - $value = str_replace( - array('»', '〉', '>', '›', '〉', '⟩'), '>', $value - ); - - return $value; - } - - /** - * This method matches and translates base64 strings and fragments - * used in data URIs - * - * @param string $value the value to convert - * - * @static - * @return string - */ - public static function convertFromNestedBase64($value) - { - $matches = array(); - preg_match_all('/(?:^|[,&?])\s*([a-z0-9]{30,}=*)(?:\W|$)/im', - $value, - $matches); - - foreach ($matches[1] as $item) { - if (isset($item) && !preg_match('/[a-f0-9]{32}/i', $item)) { - $base64_item = base64_decode($item); - $value = str_replace($item, $base64_item, $value); - } - } - - return $value; - } - - /** - * Detects nullbytes and controls chars via ord() - * - * @param string $value the value to convert - * - * @static - * @return string - */ - public static function convertFromOutOfRangeChars($value) - { - $values = str_split($value); - foreach ($values as $item) { - if (ord($item) >= 127) { - $value = str_replace($item, ' ', $value); - } - } - - return $value; - } - - /** - * Strip XML patterns - * - * @param string $value the value to convert - * - * @static - * @return string - */ - public static function convertFromXML($value) - { - $converted = strip_tags($value); - - if ($converted && ($converted != $value)) { - return $value . "\n" . $converted; - } - return $value; - } - - /** - * This method converts JS unicode code points to - * regular characters - * - * @param string $value the value to convert - * - * @static - * @return string - */ - public static function convertFromJSUnicode($value) - { - $matches = array(); - - preg_match_all('/\\\u[0-9a-f]{4}/ims', $value, $matches); - - if (!empty($matches[0])) { - foreach ($matches[0] as $match) { - $chr = chr(hexdec(substr($match, 2, 4))); - $value = str_replace($match, $chr, $value); - } - $value .= "\n\u0001"; - } - - return $value; - } - - /** - * Converts relevant UTF-7 tags to UTF-8 - * - * @param string $value the value to convert - * - * @static - * @return string - */ - public static function convertFromUTF7($value) - { - if(preg_match('/\+A\w+-?/m', $value)) { - if (function_exists('mb_convert_encoding')) { - if(version_compare(PHP_VERSION, '5.2.8', '<')) { - $tmp_chars = str_split($value); - $value = ''; - foreach($tmp_chars as $char) { - if(ord($char) <= 127) { - $value .= $char; - } - } - } - $value .= "\n" . mb_convert_encoding($value, 'UTF-8', 'UTF-7'); - } else { - //list of all critical UTF7 codepoints - $schemes = array( - '+ACI-' => '"', - '+ADw-' => '<', - '+AD4-' => '>', - '+AFs-' => '[', - '+AF0-' => ']', - '+AHs-' => '{', - '+AH0-' => '}', - '+AFw-' => '\\', - '+ADs-' => ';', - '+ACM-' => '#', - '+ACY-' => '&', - '+ACU-' => '%', - '+ACQ-' => '$', - '+AD0-' => '=', - '+AGA-' => '`', - '+ALQ-' => '"', - '+IBg-' => '"', - '+IBk-' => '"', - '+AHw-' => '|', - '+ACo-' => '*', - '+AF4-' => '^', - '+ACIAPg-' => '">', - '+ACIAPgA8-' => '">' - ); - - $value = str_ireplace(array_keys($schemes), - array_values($schemes), $value); - } - } - return $value; - } - - /** - * Converts basic concatenations - * - * @param string $value the value to convert - * - * @static - * @return string - */ - public static function convertFromConcatenated($value) - { - //normalize remaining backslashes - if ($value != preg_replace('/(\w)\\\/', "$1", $value)) { - $value .= preg_replace('/(\w)\\\/', "$1", $value); - } - - $compare = stripslashes($value); - - $pattern = array('/(?:<\/\w+>\+<\w+>)/s', - '/(?:":\d+[^"[]+")/s', - '/(?:"?"\+\w+\+")/s', - '/(?:"\s*;[^"]+")|(?:";[^"]+:\s*")/s', - '/(?:"\s*(?:;|\+).{8,18}:\s*")/s', - '/(?:";\w+=)|(?:!""&&")|(?:~)/s', - '/(?:"?"\+""?\+?"?)|(?:;\w+=")|(?:"[|&]{2,})/s', - '/(?:"\s*\W+")/s', - '/(?:";\w\s*\+=\s*\w?\s*")/s', - '/(?:"[|&;]+\s*[^|&\n]*[|&]+\s*"?)/s', - '/(?:";\s*\w+\W+\w*\s*[|&]*")/s', - '/(?:"\s*"\s*\.)/s', - '/(?:\s*new\s+\w+\s*[+",])/', - '/(?:(?:^|\s+)(?:do|else)\s+)/', - '/(?:[{(]\s*new\s+\w+\s*[)}])/', - '/(?:(this|self)\.)/', - '/(?:undefined)/', - '/(?:in\s+)/'); - - // strip out concatenations - $converted = preg_replace($pattern, null, $compare); - - //strip object traversal - $converted = preg_replace('/\w(\.\w\()/', "$1", $converted); - - // normalize obfuscated method calls - $converted = preg_replace('/\)\s*\+/', ")", $converted); - - //convert JS special numbers - $converted = preg_replace('/(?:\(*[.\d]e[+-]*[^a-z\W]+\)*)' . - '|(?:NaN|Infinity)\W/ims', 1, $converted); - - if ($converted && ($compare != $converted)) { - $value .= "\n" . $converted; - } - - return $value; - } - - /** - * This method collects and decodes proprietary encoding types - * - * @param string $value the value to convert - * - * @static - * @return string - */ - public static function convertFromProprietaryEncodings($value) { - - //Xajax error reportings - $value = preg_replace('//im', '$1', $value); - - //strip false alert triggering apostrophes - $value = preg_replace('/(\w)\"(s)/m', '$1$2', $value); - - //strip quotes within typical search patterns - $value = preg_replace('/^"([^"=\\!><~]+)"$/', '$1', $value); - - //OpenID login tokens - $value = preg_replace('/{[\w-]{8,9}\}(?:\{[\w=]{8}\}){2}/', null, $value); - - //convert Content and \sdo\s to null - $value = preg_replace('/Content|\Wdo\s/', null, $value); - - //strip emoticons - $value = preg_replace( - '/(?:\s[:;]-[)\/PD]+)|(?:\s;[)PD]+)|(?:\s:[)PD]+)|-\.-|\^\^/m', - null, - $value - ); - - //normalize separation char repetion - $value = preg_replace('/([.+~=*_\-;])\1{2,}/m', '$1', $value); - - //normalize multiple single quotes - $value = preg_replace('/"{2,}/m', '"', $value); - - //normalize quoted numerical values and asterisks - $value = preg_replace('/"(\d+)"/m', '$1', $value); - - //normalize pipe separated request parameters - $value = preg_replace('/\|(\w+=\w+)/m', '&$1', $value); - - //normalize ampersand listings - $value = preg_replace('/(\w\s)&\s(\w)/', '$1$2', $value); - - //normalize escaped RegExp modifiers - $value = preg_replace('/\/\\\(\w)/', '/$1', $value); - - return $value; - } - - /** - * This method is the centrifuge prototype - * - * @param string $value the value to convert - * @param IDS_Monitor $monitor the monitor object - * - * @static - * @return string - */ - public static function runCentrifuge($value, IDS_Monitor $monitor = null) - { - $threshold = 3.49; - if (strlen($value) > 25) { - - //strip padding - $tmp_value = preg_replace('/\s{4}|==$/m', null, $value); - $tmp_value = preg_replace( - '/\s{4}|[\p{L}\d\+\-=,.%()]{8,}/m', - 'aaa', - $tmp_value - ); - - // Check for the attack char ratio - $tmp_value = preg_replace('/([*.!?+-])\1{1,}/m', '$1', $tmp_value); - $tmp_value = preg_replace('/"[\p{L}\d\s]+"/m', null, $tmp_value); - - $stripped_length = strlen(preg_replace('/[\d\s\p{L}\.:,%&\/><\-)!|]+/m', - null, $tmp_value)); - $overall_length = strlen( - preg_replace('/([\d\s\p{L}:,\.]{3,})+/m', 'aaa', - preg_replace('/\s{2,}/m', null, $tmp_value)) - ); - - if ($stripped_length != 0 - && $overall_length/$stripped_length <= $threshold) { - - $monitor->centrifuge['ratio'] = - $overall_length/$stripped_length; - $monitor->centrifuge['threshold'] = - $threshold; - - $value .= "\n$[!!!]"; - } - } - - if (strlen($value) > 40) { - // Replace all non-special chars - $converted = preg_replace('/[\w\s\p{L},.:!]/', null, $value); - - // Split string into an array, unify and sort - $array = str_split($converted); - $array = array_unique($array); - asort($array); - - // Normalize certain tokens - $schemes = array( - '~' => '+', - '^' => '+', - '|' => '+', - '*' => '+', - '%' => '+', - '&' => '+', - '/' => '+' - ); - - $converted = implode($array); - - $_keys = array_keys($schemes); - $_values = array_values($schemes); - - $converted = str_replace($_keys, $_values, $converted); - - $converted = preg_replace('/[+-]\s*\d+/', '+', $converted); - $converted = preg_replace('/[()[\]{}]/', '(', $converted); - $converted = preg_replace('/[!?:=]/', ':', $converted); - $converted = preg_replace('/[^:(+]/', null, stripslashes($converted)); - - // Sort again and implode - $array = str_split($converted); - asort($array); - - $converted = implode($array); - - if (preg_match('/(?:\({2,}\+{2,}:{2,})|(?:\({2,}\+{2,}:+)|' . - '(?:\({3,}\++:{2,})/', $converted)) { - - $monitor->centrifuge['converted'] = $converted; - - return $value . "\n" . $converted; - } - } - - return $value; - } -} - -/** - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 expandtab - */ diff --git a/libraries/plugins/IDS/Event.php b/libraries/plugins/IDS/Event.php deleted file mode 100644 index 547d69c..0000000 --- a/libraries/plugins/IDS/Event.php +++ /dev/null @@ -1,235 +0,0 @@ -. - * - * PHP version 5.1.6+ - * - * @category Security - * @package PHPIDS - * @author Mario Heiderich - * @author Christian Matthies - * @author Lars Strojny - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ - -/** - * PHPIDS event object - * - * This class represents a certain event that occured while applying the filters - * to the supplied data. It aggregates a bunch of IDS_Filter implementations and - * is a assembled in IDS_Report. - * - * Note that this class implements both Countable and IteratorAggregate - * - * @category Security - * @package PHPIDS - * @author Christian Matthies - * @author Mario Heiderich - * @author Lars Strojny - * @copyright 2007-2009 The PHPIDS Group - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @version Release: $Id:Event.php 517 2007-09-15 15:04:13Z mario $ - * @link http://php-ids.org/ - */ -class IDS_Event implements Countable, IteratorAggregate -{ - - /** - * Event name - * - * @var scalar - */ - protected $name = null; - - /** - * Value of the event - * - * @var scalar - */ - protected $value = null; - - /** - * List of filter objects - * - * Filter objects in this array are those that matched the events value - * - * @var array - */ - protected $filters = array(); - - /** - * Calculated impact - * - * Total impact of the event - * - * @var integer - */ - protected $impact = 0; - - /** - * Affecte tags - * - * @var array - */ - protected $tags = array(); - - /** - * Constructor - * - * Fills event properties - * - * @param scalar $name the event name - * @param scalar $value the event value - * @param array $filters the corresponding filters - * - * @return void - */ - public function __construct($name, $value, Array $filters) - { - if (!is_scalar($name)) { - throw new InvalidArgumentException( - 'Expected $name to be a scalar,' . gettype($name) . ' given' - ); - } - - if (!is_scalar($value)) { - throw new InvalidArgumentException(' - Expected $value to be a scalar,' . gettype($value) . ' given' - ); - } - - $this->name = $name; - $this->value = $value; - - foreach ($filters as $filter) { - if (!$filter instanceof IDS_Filter) { - throw new InvalidArgumentException( - 'Filter must be derived from IDS_Filter' - ); - } - - $this->filters[] = $filter; - } - } - - /** - * Returns event name - * - * The name of the event usually is the key of the variable that was - * considered to be malicious - * - * @return scalar - */ - public function getName() - { - return $this->name; - } - - /** - * Returns event value - * - * @return scalar - */ - public function getValue() - { - return $this->value; - } - - /** - * Returns calculated impact - * - * @return integer - */ - public function getImpact() - { - if (!$this->impact) { - $this->impact = 0; - foreach ($this->filters as $filter) { - $this->impact += $filter->getImpact(); - } - } - - return $this->impact; - } - - /** - * Returns affected tags - * - * @return array - */ - public function getTags() - { - $filters = $this->getFilters(); - - foreach ($filters as $filter) { - $this->tags = array_merge($this->tags, - $filter->getTags()); - } - - $this->tags = array_values(array_unique($this->tags)); - - return $this->tags; - } - - /** - * Returns list of filter objects - * - * @return array - */ - public function getFilters() - { - return $this->filters; - } - - /** - * Returns number of filters - * - * To implement interface Countable this returns the number of filters - * appended. - * - * @return integer - */ - public function count() - { - return count($this->getFilters()); - } - - /** - * IteratorAggregate iterator getter - * - * Returns an iterator to iterate over the appended filters. - * - * @return ArrayObject the filter collection - */ - public function getIterator() - { - return new ArrayObject($this->getFilters()); - } -} - -/** - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 expandtab - */ diff --git a/libraries/plugins/IDS/Filter.php b/libraries/plugins/IDS/Filter.php deleted file mode 100644 index 9c427c0..0000000 --- a/libraries/plugins/IDS/Filter.php +++ /dev/null @@ -1,179 +0,0 @@ -. - * - * PHP version 5.1.6+ - * - * @category Security - * @package PHPIDS - * @author Mario Heiderich - * @author Christian Matthies - * @author Lars Strojny - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ - -/** - * PHPIDS Filter object - * - * Each object of this class serves as a container for a specific filter. The - * object provides methods to get information about this particular filter and - * also to match an arbitrary string against it. - * - * @category Security - * @package PHPIDS - * @author Christian Matthies - * @author Mario Heiderich - * @author Lars Strojny - * @copyright 2007-2009 The PHPIDS Group - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @version Release: $Id:Filter.php 517 2007-09-15 15:04:13Z mario $ - * @link http://php-ids.org/ - * @since Version 0.4 - */ -class IDS_Filter { - - /** - * Filter rule - * - * @var string - */ - protected $rule; - - /** - * List of tags of the filter - * - * @var array - */ - protected $tags = array(); - - /** - * Filter impact level - * - * @var integer - */ - protected $impact = 0; - - /** - * Filter description - * - * @var string - */ - protected $description = null; - - /** - * Constructor - * - * @param integer $id filter id - * @param mixed $rule filter rule - * @param string $description filter description - * @param array $tags list of tags - * @param integer $impact filter impact level - * - * @return void - */ - public function __construct($id, $rule, $description, array $tags, $impact) { - $this->id = $id; - $this->rule = $rule; - $this->tags = $tags; - $this->impact = $impact; - $this->description = $description; - } - - /** - * Matches a string against current filter - * - * Matches given string against the filter rule the specific object of this - * class represents - * - * @param string $string the string to match - * - * @throws InvalidArgumentException if argument is no string - * @return boolean - */ - public function match($string) { - if (!is_string($string)) { - throw new InvalidArgumentException(' - Invalid argument. Expected a string, received ' . gettype($string) - ); - } - return (bool) preg_match( - '/' . $this->getRule() . '/ms', strtolower($string) - ); - } - - /** - * Returns filter description - * - * @return string - */ - public function getDescription() { - return $this->description; - } - - /** - * Return list of affected tags - * - * Each filter rule is concerned with a certain kind of attack vectors. - * This method returns those affected kinds. - * - * @return array - */ - public function getTags() { - return $this->tags; - } - - /** - * Returns filter rule - * - * @return string - */ - public function getRule() { - return $this->rule; - } - - /** - * Get filter impact level - * - * @return integer - */ - public function getImpact() { - return $this->impact; - } - - /** - * Get filter ID - * - * @return integer - */ - public function getId() { - return $this->id; - } - -} - -/** - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 expandtab - */ diff --git a/libraries/plugins/IDS/Filter/Storage.php b/libraries/plugins/IDS/Filter/Storage.php deleted file mode 100644 index f1a6406..0000000 --- a/libraries/plugins/IDS/Filter/Storage.php +++ /dev/null @@ -1,381 +0,0 @@ -. - * - * PHP version 5.1.6+ - * - * @category Security - * @package PHPIDS - * @author Mario Heiderich - * @author Christian Matthies - * @author Lars Strojny - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ - -/** - * Filter Storage - * - * This class provides various default functions for gathering filter patterns - * to be used later on by the detection mechanism. You might extend this class - * to your requirements. - * - * @category Security - * @package PHPIDS - * @author Christian Matthies - * @author Mario Heiderich - * @author Lars Strojny - * @copyright 2007-2009 The PHPIDS Group - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @version Release: $Id:Storage.php 517 2007-09-15 15:04:13Z mario $ - * @link http://php-ids.org/ - */ -class IDS_Filter_Storage -{ - - /** - * Filter source file - * - * @var string - */ - protected $source = null; - - /** - * Holds caching settings - * - * @var array - */ - protected $cacheSettings = null; - - /** - * Cache container - * - * @var object IDS_Caching wrapper - */ - protected $cache = null; - - /** - * Filter container - * - * @var array - */ - protected $filterSet = array(); - - /** - * Constructor - * - * Loads filters based on provided IDS_Init settings. - * - * @param object $init IDS_Init instance - * - * @throws Exception if unsupported filter type is given - * @return void - */ - public final function __construct(IDS_Init $init) - { - if ($init->config) { - - $caching = isset($init->config['Caching']['caching']) ? - $init->config['Caching']['caching'] : 'none'; - - $type = $init->config['General']['filter_type']; - $this->source = $init->getBasePath() - . $init->config['General']['filter_path']; - - if ($caching && $caching != 'none') { - $this->cacheSettings = $init->config['Caching']; - include_once 'IDS/Caching/Factory.php'; - $this->cache = IDS_Caching::factory($init, 'storage'); - } - - switch ($type) { - case 'xml' : - $this->getFilterFromXML(); - break; - case 'json' : - $this->getFilterFromJson(); - break; - default : - throw new Exception('Unsupported filter type.'); - } - } - } - - /** - * Sets the filter array - * - * @param array $filterSet array containing multiple IDS_Filter instances - * - * @return object $this - */ - public final function setFilterSet($filterSet) - { - foreach ($filterSet as $filter) { - $this->addFilter($filter); - } - - return $this; - } - - /** - * Returns registered filters - * - * @return array - */ - public final function getFilterSet() - { - return $this->filterSet; - } - - /** - * Adds a filter - * - * @param object $filter IDS_Filter instance - * - * @return object $this - */ - public final function addFilter(IDS_Filter $filter) - { - $this->filterSet[] = $filter; - return $this; - } - - /** - * Checks if any filters are cached - * - * @return mixed $filters cached filters or false - */ - private function _isCached() - { - $filters = false; - - if ($this->cacheSettings) { - - if ($this->cache) { - $filters = $this->cache->getCache(); - } - } - - return $filters; - } - - /** - * Loads filters from XML using SimpleXML - * - * This function parses the provided source file and stores the result. - * If caching mode is enabled the result will be cached to increase - * the performance. - * - * @throws Exception if problems with fetching the XML data occur - * @return object $this - */ - public function getFilterFromXML() - { - - if (extension_loaded('SimpleXML')) { - - /* - * See if filters are already available in the cache - */ - $filters = $this->_isCached(); - - /* - * If they aren't, parse the source file - */ - if (!$filters) { - if (file_exists($this->source)) { - if (LIBXML_VERSION >= 20621) { - $filters = simplexml_load_file($this->source, - null, - LIBXML_COMPACT); - } else { - $filters = simplexml_load_file($this->source); - } - } - } - - /* - * In case we still don't have any filters loaded and exception - * will be thrown - */ - if (empty($filters)) { - throw new Exception( - 'XML data could not be loaded.' . - ' Make sure you specified the correct path.' - ); - } - - /* - * Now the storage will be filled with IDS_Filter objects - */ - $data = array(); - $nocache = $filters instanceof SimpleXMLElement; - $filters = $nocache ? $filters->filter : $filters; - - include_once 'IDS/Filter.php'; - - foreach ($filters as $filter) { - - $id = $nocache ? (string) $filter->id : - $filter['id']; - $rule = $nocache ? (string) $filter->rule : - $filter['rule']; - $impact = $nocache ? (string) $filter->impact : - $filter['impact']; - $tags = $nocache ? array_values((array) $filter->tags) : - $filter['tags']; - $description = $nocache ? (string) $filter->description : - $filter['description']; - - $this->addFilter(new IDS_Filter($id, - $rule, - $description, - (array) $tags[0], - (int) $impact)); - - $data[] = array( - 'id' => $id, - 'rule' => $rule, - 'impact' => $impact, - 'tags' => $tags, - 'description' => $description - ); - } - - /* - * If caching is enabled, the fetched data will be cached - */ - if ($this->cacheSettings) { - - $this->cache->setCache($data); - } - - } else { - throw new Exception( - 'SimpleXML not loaded.' - ); - } - - return $this; - } - - /** - * Loads filters from Json file using ext/Json - * - * This function parses the provided source file and stores the result. - * If caching mode is enabled the result will be cached to increase - * the performance. - * - * @throws Exception if problems with fetching the JSON data occur - * @return object $this - */ - public function getFilterFromJson() - { - - if (extension_loaded('Json')) { - - /* - * See if filters are already available in the cache - */ - $filters = $this->_isCached(); - - /* - * If they aren't, parse the source file - */ - if (!$filters) { - if (file_exists($this->source)) { - $filters = json_decode(file_get_contents($this->source)); - } else { - throw new Exception( - 'JSON data could not be loaded.' . - ' Make sure you specified the correct path.' - ); - } - } - - if (!$filters) { - throw new Exception( - 'JSON data could not be loaded.' . - ' Make sure you specified the correct path.' - ); - } - - /* - * Now the storage will be filled with IDS_Filter objects - */ - $data = array(); - $nocache = !is_array($filters); - $filters = $nocache ? $filters->filters->filter : $filters; - - include_once 'IDS/Filter.php'; - - foreach ($filters as $filter) { - - $id = $nocache ? (string) $filter->id : - $filter['id']; - $rule = $nocache ? (string) $filter->rule : - $filter['rule']; - $impact = $nocache ? (string) $filter->impact : - $filter['impact']; - $tags = $nocache ? array_values((array) $filter->tags) : - $filter['tags']; - $description = $nocache ? (string) $filter->description : - $filter['description']; - - $this->addFilter(new IDS_Filter($id, - $rule, - $description, - (array) $tags[0], - (int) $impact)); - - $data[] = array( - 'id' => $id, - 'rule' => $rule, - 'impact' => $impact, - 'tags' => $tags, - 'description' => $description - ); - } - - /* - * If caching is enabled, the fetched data will be cached - */ - if ($this->cacheSettings) { - $this->cache->setCache($data); - } - - } else { - throw new Exception( - 'ext/json not loaded.' - ); - } - - return $this; - } -} - -/** - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 expandtab - */ diff --git a/libraries/plugins/IDS/Init.php b/libraries/plugins/IDS/Init.php deleted file mode 100644 index 3a2f099..0000000 --- a/libraries/plugins/IDS/Init.php +++ /dev/null @@ -1,240 +0,0 @@ -. - * - * PHP version 5.1.6+ - * - * @category Security - * @package PHPIDS - * @author Mario Heiderich - * @author Christian Matthies - * @author Lars Strojny - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ - -/** - * Framework initiation - * - * This class is used for the purpose to initiate the framework and inhabits - * functionality to parse the needed configuration file. - * - * @category Security - * @package PHPIDS - * @author Christian Matthies - * @author Mario Heiderich - * @author Lars Strojny - * @copyright 2007-2009 The PHPIDS Groupup - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @version Release: $Id:Init.php 517 2007-09-15 15:04:13Z mario $ - * @link http://php-ids.org/ - * @since Version 0.4 - */ -class IDS_Init -{ - - /** - * Holds config settings - * - * @var array - */ - public $config = array(); - - /** - * Instance of this class depending on the supplied config file - * - * @var array - * @static - */ - private static $instances = array(); - - /** - * Path to the config file - * - * @var string - */ - private $configPath = null; - - /** - * Constructor - * - * Includes needed classes and parses the configuration file - * - * @param string $configPath the path to the config file - * - * @return object $this - */ - private function __construct($configPath = null) - { - include_once 'IDS/Monitor.php'; - include_once 'IDS/Filter/Storage.php'; - - if ($configPath) { - $this->setConfigPath($configPath); - - if (function_exists('parse_ini_file')) { - $this->config = parse_ini_file($this->configPath, true); - } else { - $configContent = file_get_contents($this->configPath); - $this->config = parse_ini_string($configContent, true); - } - - } - } - - /** - * Permitting to clone this object - * - * For the sake of correctness of a singleton pattern, this is necessary - * - * @return void - */ - public final function __clone() - { - } - - /** - * Returns an instance of this class. Also a PHP version check - * is being performed to avoid compatibility problems with PHP < 5.1.6 - * - * @param string $configPath the path to the config file - * - * @return object - */ - public static function init($configPath = null) - { - if (!isset(self::$instances[$configPath])) { - self::$instances[$configPath] = new IDS_Init($configPath); - } - - return self::$instances[$configPath]; - } - - /** - * Sets the path to the configuration file - * - * @param string $path the path to the config - * - * @throws Exception if file not found - * @return void - */ - public function setConfigPath($path) - { - if (file_exists($path)) { - $this->configPath = $path; - } else { - throw new Exception( - 'Configuration file could not be found at ' . - htmlspecialchars($path, ENT_QUOTES, 'UTF-8') - ); - } - } - - /** - * Returns path to configuration file - * - * @return string the config path - */ - public function getConfigPath() - { - return $this->configPath; - } - - /** - * This method checks if a base path is given and usage is set to true. - * If all that tests succeed the base path will be returned as a string - - * else null will be returned. - * - * @return string the base path or null - */ - public function getBasePath() - { - - return ((isset($this->config['General']['base_path']) - && $this->config['General']['base_path'] - && isset($this->config['General']['use_base_path']) - && $this->config['General']['use_base_path']) - ? $this->config['General']['base_path'] : null); - } - - /** - * Merges new settings into the exsiting ones or overwrites them - * - * @param array $config the config array - * @param boolean $overwrite config overwrite flag - * - * @return void - */ - public function setConfig(array $config, $overwrite = false) - { - if ($overwrite) { - $this->config = $this->_mergeConfig($this->config, $config); - } else { - $this->config = $this->_mergeConfig($config, $this->config); - } - } - - /** - * Merge config hashes recursivly - * - * The algorithm merges configuration arrays recursively. If an element is - * an array in both, the values will be appended. If it is a scalar in both, - * the value will be replaced. - * - * @param array $current The legacy hash - * @param array $successor The hash which values count more when in doubt - * @return array Merged hash - */ - protected function _mergeConfig($current, $successor) - { - if (is_array($current) and is_array($successor)) { - foreach ($successor as $key => $value) { - if (isset($current[$key]) - and is_array($value) - and is_array($current[$key])) { - - $current[$key] = $this->_mergeConfig($current[$key], $value); - } else { - $current[$key] = $successor[$key]; - } - } - } - return $current; - } - - /** - * Returns the config array - * - * @return array the config array - */ - public function getConfig() - { - return $this->config; - } -} - -/** - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 expandtab - */ diff --git a/libraries/plugins/IDS/Ips.php b/libraries/plugins/IDS/Ips.php deleted file mode 100644 index 1a8a864..0000000 --- a/libraries/plugins/IDS/Ips.php +++ /dev/null @@ -1,224 +0,0 @@ - - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @version Release: $Id:Ips.php 517 2011-07-29 15:04:13Z bernieberg $ - */ -class IDS_Ips -{ - /** - * Holds the data from the log file - * - * @var array - */ - private $data = array(); - - /** - * how long an ip will be blocked from their last hit - * - * @var int - */ - private $blocked_duration = 7200; - - /** - * How many negative hits until they are blocked - * - * @var int - */ - private $blocked_count = 5; - - /** - * location of the ip log file - * - * @var string - */ - private $ip_file = null; - - - /** - * Constructor - * - * Sets up the object with the passed arguments - * - * @param string $ip_file location of the ip log file - * @param int $duration how long, in seconds, to keep an ip blocked - * @param int $count how many hits until be block this ip - * - * @return void - */ - public function __construct($ip_file, $duration = 7200, $count = 5) - { - $this->blocked_duration = $duration; - $this->blocked_count = $count; - $this->ip_file = $ip_file; - - if (!file_exists($ip_file)) { - $this->data = array(); - return; - } - - // 0 = ip address - // 1 = count - // 2 = last date - // 3 = ban count - - $handle = fopen($ip_file, "r"); - $good_data = array(); - - while (($data = fgetcsv($handle, 0, ",")) !== FALSE) { - $good_data[$data[0]] = $data; - } - fclose($handle); - - $this->data = $good_data; - } - - public function tempBlock($ip_address) - { - - if (!array_key_exists($ip_address, $this->data)) { - $this->data[$ip_address] = array($ip_address, $this->blocked_count + 1, time(), 0, false); - } else { - $this->data[$ip_address][1] += $this->blocked_count; - $this->data[$ip_address][2] = time(); - } - - $this->writeLog(); - return true; - } - - /** - * isBlocked - * - * Is the passed ip address blocked? - * - * @param string $ip_address ip we are checking - * - * @return boolean - */ - public function isBlocked($ip_address) - { - - if (!array_key_exists($ip_address, $this->data)) { - return array(false, 0); - } - - $blocked_time = time()-$this->blocked_duration; - $ip_data = $this->data[$ip_address]; - - //print_r($ip_data); - - if ($ip_data[1]>=$this->blocked_count && $ip_data[2]>=$blocked_time) { - $this->incCount($ip_address); - $this->writeLog(); - return array(true, $ip_data[3]); - } - elseif($ip_data[2] <= $blocked_time && $ip_data[4] == 1) - { - //$this->unBlock($ip_address); - $this->resetCount($ip_address); - $this->writeLog(); - } - - return array(false, 0); - } - - /** - * blockCount - * - * increase ban count, you should run writeLog after this - * - * @param string $ip_address ip we are checking - * - * @return void - */ - public function resetCount($ip_address) - { - if (array_key_exists($ip_address, $this->data)) { - //unset($this->data[$ip_address]); - $this->data[$ip_address][1] = 0; - $this->data[$ip_address][4] = false; - } - } - - /** - * blockCount - * - * increase ban count, you should run writeLog after this - * - * @param string $ip_address ip we are checking - * - * @return void - */ - public function incCount($ip_address) - { - if (array_key_exists($ip_address, $this->data) && $this->data[$ip_address][4] == false) { - $this->data[$ip_address][3]++; - $this->data[$ip_address][4] = true; - } - } - - /** - * unBlock - * - * remove the passed ip address, you should run writeLog after this - * - * @param string $ip_address ip we are checking - * - * @return void - */ - public function unBlock($ip_address) - { - echo "UNBLOCKED !"; - if (array_key_exists($ip_address, $this->data)) { - unset($this->data[$ip_address]); - } - } - - /** - * logHit - * - * log and increment a negative hit for this ip address - * - * @param string $ip_address ip we are checking - * - * @return void - */ - public function logHit($ip_address) - { - if (!array_key_exists($ip_address, $this->data)) { - $this->data[$ip_address] = array($ip_address, 1, time(), 0, false); - } else { - $this->data[$ip_address][1]++; - $this->data[$ip_address][2] = time(); - } - } - - /** - * writeLog - * - * write the ip log file - * - * @return void - */ - public function writeLog() - { - $fp = fopen($this->ip_file, 'w'); - - foreach ($this->data as $fields) { - fputcsv($fp, $fields); - } - - fclose($fp); - - return true; - } -} - -?> \ No newline at end of file diff --git a/libraries/plugins/IDS/LICENSE.txt b/libraries/plugins/IDS/LICENSE.txt deleted file mode 100644 index 3f9959f..0000000 --- a/libraries/plugins/IDS/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. \ No newline at end of file diff --git a/libraries/plugins/IDS/Log/Api.php b/libraries/plugins/IDS/Log/Api.php deleted file mode 100644 index 8f8f2f5..0000000 --- a/libraries/plugins/IDS/Log/Api.php +++ /dev/null @@ -1,229 +0,0 @@ -. - * - * PHP version 5.1.6+ - * - * @category Security - * @package PHPIDS - * @author Mario Heiderich - * @author Christian Matthies - * @author Lars Strojny - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ - -require_once 'IDS/Log/Interface.php'; - -/** - * File logging wrapper - * - * The file wrapper is designed to store data into a flatfile. It implements the - * singleton pattern. - * - * @category Security - * @package PHPIDS - * @author Christian Matthies - * @author Mario Heiderich - * @author Lars Strojny - * @copyright 2007-2009 The PHPIDS Group - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @version Release: $Id:File.php 517 2007-09-15 15:04:13Z mario $ - * @link http://php-ids.org/ - */ -class IDS_Log_Api implements IDS_Log_Interface -{ - - /** - * Path to the log file - * - * @var string - */ - private $logfile = null; - - /** - * Instance container - * - * Due to the singleton pattern this class allows to initiate only one - * instance for each file. - * - * @var array - */ - private static $instances = array(); - - /** - * Holds current remote address - * - * @var string - */ - private $ip = 'local/unknown'; - - /** - * Constructor - * - * @param string $logfile path to the log file - * - * @return void - */ - protected function __construct($logfile) - { - - // determine correct IP address and concat them if necessary - $this->ip = $_SERVER['REMOTE_ADDR'] . - (isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? - ' (' . $_SERVER['HTTP_X_FORWARDED_FOR'] . ')' : ''); - - $this->logfile = $logfile; - } - - /** - * Returns an instance of this class - * - * This method allows the passed argument to be either an instance of - * IDS_Init or a path to a log file. Due to the singleton pattern only one - * instance for each file can be initiated. - * - * @param mixed $config IDS_Init or path to a file - * @param string $classname the class name to use - * - * @return object $this - */ - public static function getInstance($config, $classname = 'IDS_Log_Api') - { - if ($config instanceof IDS_Init) { - $logfile = $config->getBasePath() . $config->config['Logging']['path']; - } elseif (is_string($config)) { - $logfile = $config; - } - - if (!isset(self::$instances[$logfile])) { - self::$instances[$logfile] = new $classname($logfile); - } - - return self::$instances[$logfile]; - } - - /** - * Permitting to clone this object - * - * For the sake of correctness of a singleton pattern, this is necessary - * - * @return void - */ - private function __clone() - { - } - - /** - * Prepares data - * - * Converts given data into a format that can be stored into a file. - * You might edit this method to your requirements. - * - * @param mixed $data incoming report data - * - * @return string - */ - protected function prepareData($data) - { - - $format = '"%s",%s,%d,"%s","%s","%s","%s"'; - - $attackedParameters = ''; - foreach ($data as $event) { - $attackedParameters .= $event->getName() . '=' . - rawurlencode($event->getValue()) . ' '; - } - - $dataString = sprintf($format, - urlencode($this->ip), - date('c'), - $data->getImpact(), - join(' ', $data->getTags()), - urlencode(trim($attackedParameters)), - urlencode($_SERVER['REQUEST_URI']), - $_SERVER['SERVER_ADDR'] - ); - - return $dataString; - } - - /** - * Stores given data into a file - * - * @param object $data IDS_Report - * - * @throws Exception if the logfile isn't writeable - * @return boolean - */ - public function execute(IDS_Report $data) - { - - /* - * In case the data has been modified before it might be necessary - * to convert it to string since we can't store array or object - * into a file - */ - $data = $this->prepareData($data); - - if (is_string($data)) { - - if (file_exists($this->logfile)) { - $data = trim($data); - - if (!empty($data)) { - if (is_writable($this->logfile)) { - - $handle = fopen($this->logfile, 'a'); - fwrite($handle, trim($data) . "\n"); - fclose($handle); - - } else { - throw new Exception( - 'Please make sure that ' . $this->logfile . - ' is writeable.' - ); - } - } - } else { - throw new Exception( - 'Given file does not exist. Please make sure the - logfile is present in the given directory.' - ); - } - } else { - throw new Exception( - 'Please make sure that data returned by - IDS_Log_File::prepareData() is a string.' - ); - } - - return true; - } -} - -/** - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 expandtab - */ diff --git a/libraries/plugins/IDS/Log/Composite.php b/libraries/plugins/IDS/Log/Composite.php deleted file mode 100644 index fcd2a7c..0000000 --- a/libraries/plugins/IDS/Log/Composite.php +++ /dev/null @@ -1,136 +0,0 @@ -. - * - * PHP version 5.1.6+ - * - * @category Security - * @package PHPIDS - * @author Mario Heiderich - * @author Christian Matthies - * @author Lars Strojny - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ - -require_once 'IDS/Log/Interface.php'; - -/** - * Log Composite - * - * This class implements the composite pattern to allow to work with multiple - * logging wrappers at once. - * - * @category Security - * @package PHPIDS - * @author Christian Matthies - * @author Mario Heiderich - * @author Lars Strojny - * @copyright 2007-2009 The PHPIDS Group - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @version Release: $Id:Composite.php 517 2007-09-15 15:04:13Z mario $ - * @link http://php-ids.org/ - */ -class IDS_Log_Composite -{ - - /** - * Holds registered logging wrapper - * - * @var array - */ - public $loggers = array(); - - /** - * Iterates through registered loggers and executes them - * - * @param object $data IDS_Report object - * - * @return void - */ - public function execute(IDS_Report $data) - { - // make sure request uri is set right on IIS - if (!isset($_SERVER['REQUEST_URI'])) { - $_SERVER['REQUEST_URI'] = substr($_SERVER['PHP_SELF'], 1); - if (isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING']) { - $_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING']; - } - } - - // make sure server address is set right on IIS - if (isset($_SERVER['LOCAL_ADDR'])) { - $_SERVER['SERVER_ADDR'] = $_SERVER['LOCAL_ADDR']; - } - - foreach ($this->loggers as $logger) { - $logger->execute($data); - } - } - - /** - * Registers a new logging wrapper - * - * Only valid IDS_Log_Interface instances passed to this function will be - * registered - * - * @return void - */ - public function addLogger() - { - - $args = func_get_args(); - - foreach ($args as $class) { - if (!in_array($class, $this->loggers) && - ($class instanceof IDS_Log_Interface)) { - $this->loggers[] = $class; - } - } - } - - /** - * Removes a logger - * - * @param object $logger IDS_Log_Interface object - * - * @return boolean - */ - public function removeLogger(IDS_Log_Interface $logger) - { - $key = array_search($logger, $this->loggers); - - if (isset($this->loggers[$key])) { - unset($this->loggers[$key]); - return true; - } - - return false; - } -} - -/** - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 expandtab - */ diff --git a/libraries/plugins/IDS/Log/Database.php b/libraries/plugins/IDS/Log/Database.php deleted file mode 100644 index 4728379..0000000 --- a/libraries/plugins/IDS/Log/Database.php +++ /dev/null @@ -1,300 +0,0 @@ -. - * - * PHP version 5.1.6+ - * - * @category Security - * @package PHPIDS - * @author Mario Heiderich - * @author Christian Matthies - * @author Lars Strojny - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ - -require_once 'IDS/Log/Interface.php'; - -/* - * Needed SQL: - * - CREATE DATABASE IF NOT EXISTS `phpids` DEFAULT CHARACTER - SET utf8 COLLATE utf8_general_ci; - DROP TABLE IF EXISTS `intrusions`; - CREATE TABLE IF NOT EXISTS `intrusions` ( - `id` int(11) unsigned NOT null auto_increment, - `name` varchar(128) NOT null, - `value` text NOT null, - `page` varchar(255) NOT null, - `tags` varchar(128) NOT null, - `ip` varchar(15) NOT null, - `ip2` varchar(15) NOT null, - `impact` int(11) unsigned NOT null, - `origin` varchar(15) NOT null, - `created` datetime NOT null, - PRIMARY KEY (`id`) - ) ENGINE=MyISAM ; - * - * - * - */ - -/** - * Database logging wrapper - * - * The database wrapper is designed to store reports into an sql database. It - * implements the singleton pattern and is based in PDO, supporting - * different database types. - * - * @category Security - * @package PHPIDS - * @author Christian Matthies - * @author Mario Heiderich - * @author Lars Strojny - * @copyright 2007-2009 The PHPIDS Group - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @version Release: $Id:Database.php 517 2007-09-15 15:04:13Z mario $ - * @link http://php-ids.org/ - */ -class IDS_Log_Database implements IDS_Log_Interface -{ - - /** - * Database wrapper - * - * @var string - */ - private $wrapper = null; - - /** - * Database user - * - * @var string - */ - private $user = null; - - /** - * Database password - * - * @var string - */ - private $password = null; - - /** - * Database table - * - * @var string - */ - private $table = null; - - /** - * Database handle - * - * @var object PDO instance - */ - private $handle = null; - - /** - * Prepared SQL statement - * - * @var string - */ - private $statement = null; - - /** - * Holds current remote address - * - * @var string - */ - private $ip = 'local/unknown'; - - /** - * Instance container - * - * Due to the singleton pattern this class allows to initiate only one instance - * for each database wrapper. - * - * @var array - */ - private static $instances = array(); - - /** - * Constructor - * - * Prepares the SQL statement - * - * @param mixed $config IDS_Init instance | array - * - * @return void - * @throws PDOException if a db error occurred - */ - protected function __construct($config) - { - - if ($config instanceof IDS_Init) { - $this->wrapper = $config->config['Logging']['wrapper']; - $this->user = $config->config['Logging']['user']; - $this->password = $config->config['Logging']['password']; - $this->table = $config->config['Logging']['table']; - - } elseif (is_array($config)) { - $this->wrapper = $config['wrapper']; - $this->user = $config['user']; - $this->password = $config['password']; - $this->table = $config['table']; - } - - // determine correct IP address and concat them if necessary - $this->ip = $_SERVER['REMOTE_ADDR']; - $this->ip2 = isset($_SERVER['HTTP_X_FORWARDED_FOR']) - ? $_SERVER['HTTP_X_FORWARDED_FOR'] - : ''; - - try { - $this->handle = new PDO( - $this->wrapper, - $this->user, - $this->password - ); - - $this->statement = $this->handle->prepare(' - INSERT INTO ' . $this->table . ' ( - name, - value, - page, - tags, - ip, - ip2, - impact, - origin, - created - ) - VALUES ( - :name, - :value, - :page, - :tags, - :ip, - :ip2, - :impact, - :origin, - now() - ) - '); - - } catch (PDOException $e) { - throw new PDOException('PDOException: ' . $e->getMessage()); - } - } - - /** - * Returns an instance of this class - * - * This method allows the passed argument to be either an instance of IDS_Init or - * an array. - * - * @param mixed $config IDS_Init | array - * @param string $classname the class name to use - * - * @return object $this - */ - public static function getInstance($config, $classname = 'IDS_Log_Database') - { - if ($config instanceof IDS_Init) { - $wrapper = $config->config['Logging']['wrapper']; - } elseif (is_array($config)) { - $wrapper = $config['wrapper']; - } - - if (!isset(self::$instances[$wrapper])) { - self::$instances[$wrapper] = new $classname($config); - } - - return self::$instances[$wrapper]; - } - - /** - * Permitting to clone this object - * - * For the sake of correctness of a singleton pattern, this is necessary - * - * @return void - */ - private function __clone() - { - } - - /** - * Stores given data into the database - * - * @param object $data IDS_Report instance - * - * @throws Exception if db error occurred - * @return boolean - */ - public function execute(IDS_Report $data) - { - if (!isset($_SERVER['REQUEST_URI'])) { - $_SERVER['REQUEST_URI'] = substr($_SERVER['PHP_SELF'], 1); - if (isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING']) { - $_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING']; - } - } - - foreach ($data as $event) { - $page = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; - $ip = $this->ip; - $ip2 = $this->ip2; - - $name = $event->getName(); - $value = $event->getValue(); - $impact = $event->getImpact(); - $tags = implode(', ', $event->getTags()); - - $this->statement->bindParam('name', $name); - $this->statement->bindParam('value', $value); - $this->statement->bindParam('page', $page); - $this->statement->bindParam('tags', $tags); - $this->statement->bindParam('ip', $ip); - $this->statement->bindParam('ip2', $ip2); - $this->statement->bindParam('impact', $impact); - $this->statement->bindParam('origin', $_SERVER['SERVER_ADDR']); - - if (!$this->statement->execute()) { - - $info = $this->statement->errorInfo(); - throw new Exception( - $this->statement->errorCode() . ', ' . $info[1] . ', ' . $info[2] - ); - } - } - - return true; - } -} - -/** - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 expandtab - */ diff --git a/libraries/plugins/IDS/Log/Email.php b/libraries/plugins/IDS/Log/Email.php deleted file mode 100644 index ec4c1f0..0000000 --- a/libraries/plugins/IDS/Log/Email.php +++ /dev/null @@ -1,400 +0,0 @@ -. - * - * PHP version 5.1.6+ - * - * @category Security - * @package PHPIDS - * @author Mario Heiderich - * @author Christian Matthies - * @author Lars Strojny - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ - -require_once 'IDS/Log/Interface.php'; - -/** - * Email logging wrapper - * - * The Email wrapper is designed to send reports via email. It implements the - * singleton pattern. - * - * @category Security - * @package PHPIDS - * @author Christian Matthies - * @author Mario Heiderich - * @author Lars Strojny - * @copyright 2007-2009 The PHPIDS Group - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @version Release: $Id:Email.php 517 2007-09-15 15:04:13Z mario $ - * @link http://php-ids.org/ - */ -class IDS_Log_Email implements IDS_Log_Interface -{ - - /** - * Recipient container - * - * @var array - */ - protected $recipients = array(); - - /** - * Mail subject - * - * @var string - */ - protected $subject = null; - - /** - * Additional mail headers - * - * @var string - */ - protected $headers = null; - - /** - * Safemode switch - * - * Using this switch it is possible to enable safemode, which is a spam - * protection based on the alert frequency. - * - * @var boolean - */ - protected $safemode = true; - - /** - * Urlencode for result strings - * - * This switch is true by default. Setting it to false removes - * the 'better safe than sorry' urlencoding for the result string in - * the report mails. Enhances readability but maybe XSSes email clients. - * - * @var boolean - */ - protected $urlencode = true; - - /** - * Send rate - * - * If safemode is enabled, this property defines how often reports will be - * sent out. Default value is 15, which means that a mail will be sent on - * condition that the last email has not been sent earlier than 15 seconds ago. - * - * @var integer - */ - protected $allowed_rate = 15; - - /** - * PHPIDS temp directory - * - * When safemod is enabled, a path to a temp directory is needed to - * store some information. Default is IDS/tmp/ - * - * @var string - */ - protected $tmp_path = 'IDS/tmp/'; - - /** - * File prefix for tmp files - * - * @var string - */ - protected $file_prefix = 'PHPIDS_Log_Email_'; - - /** - * Holds current remote address - * - * @var string - */ - protected $ip = 'local/unknown'; - - /** - * Instance container - * - * @var array - */ - protected static $instance = array(); - - /** - * Constructor - * - * @param mixed $config IDS_Init instance | array - * - * @return void - */ - protected function __construct($config) - { - - if ($config instanceof IDS_Init) { - $this->recipients = $config->config['Logging']['recipients']; - $this->subject = $config->config['Logging']['subject']; - $this->headers = $config->config['Logging']['header']; - $this->envelope = $config->config['Logging']['envelope']; - $this->safemode = $config->config['Logging']['safemode']; - $this->urlencode = $config->config['Logging']['urlencode']; - $this->allowed_rate = $config->config['Logging']['allowed_rate']; - $this->tmp_path = $config->getBasePath() - . $config->config['General']['tmp_path']; - - } elseif (is_array($config)) { - $this->recipients[] = $config['recipients']; - $this->subject = $config['subject']; - $this->additionalHeaders = $config['header']; - } - - // determine correct IP address and concat them if necessary - $this->ip = $_SERVER['REMOTE_ADDR'] . - (isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? - ' (' . $_SERVER['HTTP_X_FORWARDED_FOR'] . ')' : ''); - } - - /** - * Returns an instance of this class - * - * This method allows the passed argument to be either an instance of - * IDS_Init or an array. - * - * @param mixed $config IDS_Init | array - * @param string $classname the class name to use - * - * @return object $this - */ - public static function getInstance($config, $classname = 'IDS_Log_Email') - { - if (!self::$instance) { - self::$instance = new $classname($config); - } - - return self::$instance; - } - - /** - * Permitting to clone this object - * - * For the sake of correctness of a singleton pattern, this is necessary - * - * @return void - */ - private function __clone() - { - } - - /** - * Detects spam attempts - * - * To avoid mail spam through this logging class this function is used - * to detect such attempts based on the alert frequency. - * - * @return boolean - */ - protected function isSpamAttempt() - { - - /* - * loop through all files in the tmp directory and - * delete garbage files - */ - $dir = $this->tmp_path; - $numPrefixChars = strlen($this->file_prefix); - $files = scandir($dir); - foreach ($files as $file) { - if (is_file($dir . DIRECTORY_SEPARATOR . $file)) { - if (substr($file, 0, $numPrefixChars) == $this->file_prefix) { - $lastModified = filemtime($dir . DIRECTORY_SEPARATOR . $file); - if ((time() - $lastModified) > 3600) { - unlink($dir . DIRECTORY_SEPARATOR . $file); - } - } - } - } - - /* - * end deleting garbage files - */ - $remoteAddr = $this->ip; - $userAgent = $_SERVER['HTTP_USER_AGENT']; - $filename = $this->file_prefix . md5($remoteAddr.$userAgent) . '.tmp'; - $file = $dir . DIRECTORY_SEPARATOR . $filename; - - if (!file_exists($file)) { - $handle = fopen($file, 'w'); - fwrite($handle, time()); - fclose($handle); - - return false; - } - - $lastAttack = file_get_contents($file); - $difference = time() - $lastAttack; - if ($difference > $this->allowed_rate) { - unlink($file); - } else { - return true; - } - - return false; - } - - /** - * Prepares data - * - * Converts given data into a format that can be read in an email. - * You might edit this method to your requirements. - * - * @param mixed $data the report data - * - * @return string - */ - protected function prepareData($data) - { - - $format = "The following attack has been detected by PHPIDS\n\n"; - $format .= "IP: %s \n"; - $format .= "Date: %s \n"; - $format .= "Impact: %d \n"; - $format .= "Affected tags: %s \n"; - - $attackedParameters = ''; - foreach ($data as $event) { - $attackedParameters .= $event->getName() . '=' . - ((!isset($this->urlencode) ||$this->urlencode) - ? urlencode($event->getValue()) - : $event->getValue()) . ", "; - } - - $format .= "Affected parameters: %s \n"; - $format .= "Request URI: %s \n"; - $format .= "Origin: %s \n"; - - return sprintf($format, - $this->ip, - date('c'), - $data->getImpact(), - join(' ', $data->getTags()), - trim($attackedParameters), - htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES, 'UTF-8'), - $_SERVER['SERVER_ADDR']); - } - - /** - * Sends the report to registered recipients - * - * @param object $data IDS_Report instance - * - * @throws Exception if data is no string - * @return boolean - */ - public function execute(IDS_Report $data) - { - - if ($this->safemode) { - if ($this->isSpamAttempt()) { - return false; - } - } - - /* - * In case the data has been modified before it might - * be necessary to convert it to string since it's pretty - * senseless to send array or object via e-mail - */ - $data = $this->prepareData($data); - - if (is_string($data)) { - $data = trim($data); - - // if headers are passed as array, we need to make a string of it - if (is_array($this->headers)) { - $headers = ""; - foreach ($this->headers as $header) { - $headers .= $header . "\r\n"; - } - } else { - $headers = $this->headers; - } - - if (!empty($this->recipients)) { - if (is_array($this->recipients)) { - foreach ($this->recipients as $address) { - $this->send( - $address, - $data, - $headers, - $this->envelope - ); - } - } else { - $this->send( - $this->recipients, - $data, - $headers, - $this->envelope - ); - } - } - - } else { - throw new Exception( - 'Please make sure that data returned by - IDS_Log_Email::prepareData() is a string.' - ); - } - - return true; - } - - /** - * Sends an email - * - * @param string $address email address - * @param string $data the report data - * @param string $headers the mail headers - * @param string $envelope the optional envelope string - * - * @return boolean - */ - protected function send($address, $data, $headers, $envelope = null) - { - if (!$envelope || strpos(ini_get('sendmail_path'),' -f') !== false) { - return mail($address, - $this->subject, - $data, - $headers); - } else { - return mail($address, - $this->subject, - $data, - $headers, - '-f' . $envelope); - } - } -} - -/** - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 expandtab - */ diff --git a/libraries/plugins/IDS/Log/File.php b/libraries/plugins/IDS/Log/File.php deleted file mode 100644 index 76be418..0000000 --- a/libraries/plugins/IDS/Log/File.php +++ /dev/null @@ -1,229 +0,0 @@ -. - * - * PHP version 5.1.6+ - * - * @category Security - * @package PHPIDS - * @author Mario Heiderich - * @author Christian Matthies - * @author Lars Strojny - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ - -require_once 'IDS/Log/Interface.php'; - -/** - * File logging wrapper - * - * The file wrapper is designed to store data into a flatfile. It implements the - * singleton pattern. - * - * @category Security - * @package PHPIDS - * @author Christian Matthies - * @author Mario Heiderich - * @author Lars Strojny - * @copyright 2007-2009 The PHPIDS Group - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @version Release: $Id:File.php 517 2007-09-15 15:04:13Z mario $ - * @link http://php-ids.org/ - */ -class IDS_Log_File implements IDS_Log_Interface -{ - - /** - * Path to the log file - * - * @var string - */ - private $logfile = null; - - /** - * Instance container - * - * Due to the singleton pattern this class allows to initiate only one - * instance for each file. - * - * @var array - */ - private static $instances = array(); - - /** - * Holds current remote address - * - * @var string - */ - private $ip = 'local/unknown'; - - /** - * Constructor - * - * @param string $logfile path to the log file - * - * @return void - */ - protected function __construct($logfile) - { - - // determine correct IP address and concat them if necessary - $this->ip = $_SERVER['REMOTE_ADDR'] . - (isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? - ' (' . $_SERVER['HTTP_X_FORWARDED_FOR'] . ')' : ''); - - $this->logfile = $logfile; - } - - /** - * Returns an instance of this class - * - * This method allows the passed argument to be either an instance of - * IDS_Init or a path to a log file. Due to the singleton pattern only one - * instance for each file can be initiated. - * - * @param mixed $config IDS_Init or path to a file - * @param string $classname the class name to use - * - * @return object $this - */ - public static function getInstance($config, $classname = 'IDS_Log_File') - { - if ($config instanceof IDS_Init) { - $logfile = $config->getBasePath() . $config->config['Logging']['path']; - } elseif (is_string($config)) { - $logfile = $config; - } - - if (!isset(self::$instances[$logfile])) { - self::$instances[$logfile] = new $classname($logfile); - } - - return self::$instances[$logfile]; - } - - /** - * Permitting to clone this object - * - * For the sake of correctness of a singleton pattern, this is necessary - * - * @return void - */ - private function __clone() - { - } - - /** - * Prepares data - * - * Converts given data into a format that can be stored into a file. - * You might edit this method to your requirements. - * - * @param mixed $data incoming report data - * - * @return string - */ - protected function prepareData($data) - { - - $format = '"%s",%s,%d,"%s","%s","%s","%s"'; - - $attackedParameters = ''; - foreach ($data as $event) { - $attackedParameters .= $event->getName() . '=' . - rawurlencode($event->getValue()) . ' '; - } - - $dataString = sprintf($format, - urlencode($this->ip), - date('c'), - $data->getImpact(), - join(' ', $data->getTags()), - urlencode(trim($attackedParameters)), - urlencode($_SERVER['REQUEST_URI']), - $_SERVER['SERVER_ADDR'] - ); - - return $dataString; - } - - /** - * Stores given data into a file - * - * @param object $data IDS_Report - * - * @throws Exception if the logfile isn't writeable - * @return boolean - */ - public function execute(IDS_Report $data) - { - - /* - * In case the data has been modified before it might be necessary - * to convert it to string since we can't store array or object - * into a file - */ - $data = $this->prepareData($data); - - if (is_string($data)) { - - if (file_exists($this->logfile)) { - $data = trim($data); - - if (!empty($data)) { - if (is_writable($this->logfile)) { - - $handle = fopen($this->logfile, 'a'); - fwrite($handle, trim($data) . "\n"); - fclose($handle); - - } else { - throw new Exception( - 'Please make sure that ' . $this->logfile . - ' is writeable.' - ); - } - } - } else { - throw new Exception( - 'Given file does not exist. Please make sure the - logfile is present in the given directory.' - ); - } - } else { - throw new Exception( - 'Please make sure that data returned by - IDS_Log_File::prepareData() is a string.' - ); - } - - return true; - } -} - -/** - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 expandtab - */ diff --git a/libraries/plugins/IDS/Log/Interface.php b/libraries/plugins/IDS/Log/Interface.php deleted file mode 100644 index 551532f..0000000 --- a/libraries/plugins/IDS/Log/Interface.php +++ /dev/null @@ -1,65 +0,0 @@ -. - * - * PHP version 5.1.6+ - * - * @category Security - * @package PHPIDS - * @author Mario Heiderich - * @author Christian Matthies - * @author Lars Strojny - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ - -/** - * Interface for logging wrappers - * - * @category Security - * @package PHPIDS - * @author Christian Matthies - * @author Mario Heiderich - * @author Lars Strojny - * @copyright 2007-2009 The PHPIDS Group - * @version Release: $Id:Interface.php 517 2007-09-15 15:04:13Z mario $ - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ -interface IDS_Log_Interface -{ - /** - * Interface method - * - * @param IDS_Report $data the report data - * - * @return void - */ - public function execute(IDS_Report $data); -} - -/** - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 expandtab - */ diff --git a/libraries/plugins/IDS/Monitor.php b/libraries/plugins/IDS/Monitor.php deleted file mode 100644 index ee5cf97..0000000 --- a/libraries/plugins/IDS/Monitor.php +++ /dev/null @@ -1,778 +0,0 @@ -. - * - * PHP version 5.1.6+ - * - * @category Security - * @package PHPIDS - * @author Mario Heiderich - * @author Christian Matthies - * @author Lars Strojny - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ - -/** - * Monitoring engine - * - * This class represents the core of the frameworks attack detection mechanism - * and provides functions to scan incoming data for malicious appearing script - * fragments. - * - * @category Security - * @package PHPIDS - * @author Christian Matthies - * @author Mario Heiderich - * @author Lars Strojny - * @copyright 2007-2009 The PHPIDS Group - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @version Release: $Id:Monitor.php 949 2008-06-28 01:26:03Z christ1an $ - * @link http://php-ids.org/ - */ -class IDS_Monitor -{ - - /** - * Tags to define what to search for - * - * Accepted values are xss, csrf, sqli, dt, id, lfi, rfe, spam, dos - * - * @var array - */ - private $tags = null; - - /** - * Request array - * - * Array containing raw data to search in - * - * @var array - */ - private $request = null; - - /** - * Container for filter rules - * - * Holds an instance of IDS_Filter_Storage - * - * @var object - */ - private $storage = null; - - /** - * Results - * - * Holds an instance of IDS_Report which itself provides an API to - * access the detected results - * - * @var object - */ - private $report = null; - - /** - * Scan keys switch - * - * Enabling this property will cause the monitor to scan both the key and - * the value of variables - * - * @var boolean - */ - public $scanKeys = false; - - /** - * Exception container - * - * Using this array it is possible to define variables that must not be - * scanned. Per default, utmz google analytics parameters are permitted. - * - * @var array - */ - private $exceptions = array(); - - /** - * Html container - * - * Using this array it is possible to define variables that legally - * contain html and have to be prepared before hitting the rules to - * avoid too many false alerts - * - * @var array - */ - private $html = array(); - - /** - * JSON container - * - * Using this array it is possible to define variables that contain - * JSON data - and should be treated as such - * - * @var array - */ - private $json = array(); - - /** - * Holds HTMLPurifier object - * - * @var object - */ - private $htmlpurifier = NULL; - - /** - * Path to HTMLPurifier source - * - * This path might be changed in case one wishes to make use of a - * different HTMLPurifier source file e.g. if already used in the - * application PHPIDS is protecting - * - * @var string - */ - private $pathToHTMLPurifier = ''; - - /** - * HTMLPurifier cache directory - * - * @var string - */ - private $HTMLPurifierCache = ''; - - /** - * This property holds the tmp JSON string from the - * _jsonDecodeValues() callback - * - * @var string - */ - private $tmpJsonString = ''; - - - /** - * Constructor - * - * @param array $request array to scan - * @param object $init instance of IDS_Init - * @param array $tags list of tags to which filters should be applied - * - * @return void - */ - public function __construct(array $request, IDS_Init $init, array $tags = null) - { - $version = isset($init->config['General']['min_php_version']) - ? $init->config['General']['min_php_version'] : '5.1.6'; - - if (version_compare(PHP_VERSION, $version, '<')) { - throw new Exception( - 'PHP version has to be equal or higher than ' . $version . ' or - PHP version couldn\'t be determined' - ); - } - - - if (!empty($request)) { - $this->storage = new IDS_Filter_Storage($init); - $this->request = $request; - $this->tags = $tags; - - $this->scanKeys = $init->config['General']['scan_keys']; - - $this->exceptions = isset($init->config['General']['exceptions']) - ? $init->config['General']['exceptions'] : false; - - $this->html = isset($init->config['General']['html']) - ? $init->config['General']['html'] : false; - - $this->json = isset($init->config['General']['json']) - ? $init->config['General']['json'] : false; - - if(isset($init->config['General']['HTML_Purifier_Path']) - && isset($init->config['General']['HTML_Purifier_Cache'])) { - - $this->pathToHTMLPurifier = - $init->config['General']['HTML_Purifier_Path']; - - $this->HTMLPurifierCache = $init->getBasePath() - . $init->config['General']['HTML_Purifier_Cache']; - } - - } - - if (!is_writeable($init->getBasePath() - . $init->config['General']['tmp_path'])) { - throw new Exception( - 'Please make sure the ' . - htmlspecialchars($init->getBasePath() . - $init->config['General']['tmp_path'], ENT_QUOTES, 'UTF-8') . - ' folder is writable' - ); - } - - include_once 'IDS/Report.php'; - $this->report = new IDS_Report; - } - - /** - * Starts the scan mechanism - * - * @return object IDS_Report - */ - public function run() - { - - if (!empty($this->request)) { - foreach ($this->request as $key => $value) { - $this->_iterate($key, $value); - } - } - - return $this->getReport(); - } - - /** - * Iterates through given data and delegates it to IDS_Monitor::_detect() in - * order to check for malicious appearing fragments - * - * @param mixed $key the former array key - * @param mixed $value the former array value - * - * @return void - */ - private function _iterate($key, $value) - { - - if (!is_array($value)) { - if (is_string($value)) { - - if ($filter = $this->_detect($key, $value)) { - include_once 'IDS/Event.php'; - $this->report->addEvent( - new IDS_Event( - $key, - $value, - $filter - ) - ); - } - } - } else { - foreach ($value as $subKey => $subValue) { - $this->_iterate($key . '.' . $subKey, $subValue); - } - } - } - - /** - * Checks whether given value matches any of the supplied filter patterns - * - * @param mixed $key the key of the value to scan - * @param mixed $value the value to scan - * - * @return bool|array false or array of filter(s) that matched the value - */ - private function _detect($key, $value) - { - - // define the pre-filter - $prefilter = '/[^\w\s\/@!?\.]+|(?:\.\/)|(?:@@\w+)' - . '|(?:\+ADw)|(?:union\s+select)/i'; - - // to increase performance, only start detection if value - // isn't alphanumeric - if (!$this->scanKeys - && (!$value || !preg_match($prefilter, $value))) { - return false; - } elseif($this->scanKeys) { - if((!$key || !preg_match($prefilter, $key)) - && (!$value || !preg_match($prefilter, $value))) { - return false; - } - } - - // check if this field is part of the exceptions - if (is_array($this->exceptions)) { - foreach($this->exceptions as $exception) { - $matches = array(); - if(preg_match('/(\/.*\/[^eE]*)$/', $exception, $matches)) { - if(isset($matches[1]) && preg_match($matches[1], $key)) { - return false; - } - } else { - if($exception === $key) { - return false; - } - } - } - } - - // check for magic quotes and remove them if necessary - if (function_exists('get_magic_quotes_gpc') - && get_magic_quotes_gpc()) { - $value = stripslashes($value); - } - if(function_exists('get_magic_quotes_gpc') - && !get_magic_quotes_gpc() - && version_compare(PHP_VERSION, '5.3.0', '>=')) { - $value = preg_replace('/\\\(["\'\/])/im', '$1', $value); - } - - // if html monitoring is enabled for this field - then do it! - if (is_array($this->html) && in_array($key, $this->html, true)) { - list($key, $value) = $this->_purifyValues($key, $value); - } - - // check if json monitoring is enabled for this field - if (is_array($this->json) && in_array($key, $this->json, true)) { - list($key, $value) = $this->_jsonDecodeValues($key, $value); - } - - // use the converter - include_once 'IDS/Converter.php'; - $value = IDS_Converter::runAll($value); - $value = IDS_Converter::runCentrifuge($value, $this); - - // scan keys if activated via config - $key = $this->scanKeys ? IDS_Converter::runAll($key) - : $key; - $key = $this->scanKeys ? IDS_Converter::runCentrifuge($key, $this) - : $key; - - $filters = array(); - $filterSet = $this->storage->getFilterSet(); - foreach ($filterSet as $filter) { - - /* - * in case we have a tag array specified the IDS will only - * use those filters that are meant to detect any of the - * defined tags - */ - if (is_array($this->tags)) { - if (array_intersect($this->tags, $filter->getTags())) { - if ($this->_match($key, $value, $filter)) { - $filters[] = $filter; - } - } - } else { - if ($this->_match($key, $value, $filter)) { - $filters[] = $filter; - } - } - } - - return empty($filters) ? false : $filters; - } - - - /** - * Purifies given key and value variables using HTMLPurifier - * - * This function is needed whenever there is variables for which HTML - * might be allowed like e.g. WYSIWYG post bodies. It will dectect malicious - * code fragments and leaves harmless parts untouched. - * - * @param mixed $key - * @param mixed $value - * @since 0.5 - * @throws Exception - * - * @return array - */ - private function _purifyValues($key, $value) - { - /* - * Perform a pre-check if string is valid for purification - */ - if(!$this->_purifierPreCheck($key, $value)) { - return array($key, $value); - } - - include_once $this->pathToHTMLPurifier; - - if (!is_writeable($this->HTMLPurifierCache)) { - throw new Exception( - $this->HTMLPurifierCache . ' must be writeable'); - } - - if (class_exists('HTMLPurifier')) { - $config = HTMLPurifier_Config::createDefault(); - $config->set('Attr.EnableID', true); - $config->set('Cache.SerializerPath', $this->HTMLPurifierCache); - $config->set('Output.Newline', "\n"); - $this->htmlpurifier = new HTMLPurifier($config); - } else { - throw new Exception( - 'HTMLPurifier class could not be found - ' . - 'make sure the purifier files are valid and' . - ' the path is correct' - ); - } - - $value = preg_replace('/[\x0b-\x0c]/', ' ', $value); - $key = preg_replace('/[\x0b-\x0c]/', ' ', $key); - - $purified_value = $this->htmlpurifier->purify($value); - $purified_key = $this->htmlpurifier->purify($key); - - $redux_value = strip_tags($value); - $redux_key = strip_tags($key); - - if ($value != $purified_value || $redux_value) { - $value = $this->_diff($value, $purified_value, $redux_value); - } else { - $value = NULL; - } - if ($key != $purified_key) { - $key = $this->_diff($key, $purified_key, $redux_key); - } else { - $key = NULL; - } - - return array($key, $value); - } - - /** - * This method makes sure no dangerous markup can be smuggled in - * attributes when HTML mode is switched on. - * - * If the precheck considers the string too dangerous for - * purification false is being returned. - * - * @param mixed $key - * @param mixed $value - * @since 0.6 - * - * @return boolean - */ - private function _purifierPreCheck($key = '', $value = '') - { - /* - * Remove control chars before pre-check - */ - $tmp_value = preg_replace('/\p{C}/', null, $value); - $tmp_key = preg_replace('/\p{C}/', null, $key); - - $precheck = '/<(script|iframe|applet|object)\W/i'; - if(preg_match($precheck, $tmp_key) - || preg_match($precheck, $tmp_value)) { - - return false; - } - return true; - } - - - /** - * This method calculates the difference between the original - * and the purified markup strings. - * - * @param string $original the original markup - * @param string $purified the purified markup - * @param string $redux the string without html - * @since 0.5 - * - * @return string the difference between the strings - */ - private function _diff($original, $purified, $redux) - { - /* - * deal with over-sensitive alt-attribute addition of the purifier - * and other common html formatting problems - */ - $purified = preg_replace('/\s+alt="[^"]*"/m', null, $purified); - $purified = preg_replace('/=?\s*"\s*"/m', null, $purified); - $original = preg_replace('/\s+alt="[^"]*"/m', null, $original); - $original = preg_replace('/=?\s*"\s*"/m', null, $original); - $original = preg_replace('/style\s*=\s*([^"])/m', 'style = "$1', $original); - - # deal with oversensitive CSS normalization - $original = preg_replace('/(?:([\w\-]+:)+\s*([^;]+;\s*))/m', '$1$2', $original); - - # strip whitespace between tags - $original = trim(preg_replace('/>\s*<', $original)); - $purified = trim(preg_replace('/>\s*<', $purified)); - - $original = preg_replace( - '/(=\s*(["\'`])[^>"\'`]*>[^>"\'`]*["\'`])/m', 'alt$1', $original - ); - - // no purified html is left - if (!$purified) { - return $original; - } - - // calculate the diff length - $length = mb_strlen($original) - mb_strlen($purified); - - /* - * Calculate the difference between the original html input - * and the purified string. - */ - $array_1 = preg_split('/(? $value) { - if (!isset($array_2[$key]) || $value !== $array_2[$key]) { - $differences[] = $value; - } - } - - // return the diff - ready to hit the converter and the rules - if(intval($length) <= 10) { - $diff = trim(join('', $differences)); - } else { - $diff = mb_substr(trim(join('', $differences)), 0, strlen($original)); - } - - // clean up spaces between tag delimiters - $diff = preg_replace('/>\s*<', $diff); - - // correct over-sensitively stripped bad html elements - $diff = preg_replace('/[^<](iframe|script|embed|object' . - '|applet|base|img|style)/m', '<$1', $diff); - - if (mb_strlen($diff) < 4) { - return null; - } - - return $diff . $redux; - } - - /** - * This method prepares incoming JSON data for the PHPIDS detection - * process. It utilizes _jsonConcatContents() as callback and returns a - * string version of the JSON data structures. - * - * @param mixed $key - * @param mixed $value - * @since 0.5.3 - * - * @return array - */ - private function _jsonDecodeValues($key, $value) { - - $tmp_key = json_decode($key); - $tmp_value = json_decode($value); - - if($tmp_value && is_array($tmp_value) || is_object($tmp_value)) { - array_walk_recursive($tmp_value, array($this, '_jsonConcatContents')); - $value = $this->tmpJsonString; - } else { - $this->tmpJsonString .= " " . $tmp_value . "\n"; - } - - if($tmp_key && is_array($tmp_key) || is_object($tmp_key)) { - array_walk_recursive($tmp_key, array($this, '_jsonConcatContents')); - $key = $this->tmpJsonString; - } else { - $this->tmpJsonString .= " " . $tmp_key . "\n"; - } - - return array($key, $value); - } - - /** - * This is the callback used in _jsonDecodeValues(). The method - * concatenates key and value and stores them in $this->tmpJsonString. - * - * @param mixed $key - * @param mixed $value - * @since 0.5.3 - * - * @return void - */ - private function _jsonConcatContents($key, $value) { - - if(is_string($key) && is_string($value)) { - $this->tmpJsonString .= $key . " " . $value . "\n"; - } else { - $this->_jsonDecodeValues( - json_encode($key), json_encode($value) - ); - } - } - - /** - * Matches given value and/or key against given filter - * - * @param mixed $key the key to optionally scan - * @param mixed $value the value to scan - * @param object $filter the filter object - * - * @return boolean - */ - private function _match($key, $value, $filter) - { - if ($this->scanKeys) { - if ($filter->match($key)) { - return true; - } - } - - if ($filter->match($value)) { - return true; - } - - return false; - } - - /** - * Sets exception array - * - * @param mixed $exceptions the thrown exceptions - * - * @return void - */ - public function setExceptions($exceptions) - { - if (!is_array($exceptions)) { - $exceptions = array($exceptions); - } - - $this->exceptions = $exceptions; - } - - /** - * Returns exception array - * - * @return array - */ - public function getExceptions() - { - return $this->exceptions; - } - - /** - * Sets html array - * - * @param mixed $html the fields containing html - * @since 0.5 - * - * @return void - */ - public function setHtml($html) - { - if (!is_array($html)) { - $html = array($html); - } - - $this->html = $html; - } - - /** - * Adds a value to the html array - * - * @since 0.5 - * - * @return void - */ - public function addHtml($value) - { - $this->html[] = $value; - } - - /** - * Returns html array - * - * @since 0.5 - * - * @return array the fields that contain allowed html - */ - public function getHtml() - { - return $this->html; - } - - /** - * Sets json array - * - * @param mixed $json the fields containing json - * @since 0.5.3 - * - * @return void - */ - public function setJson($json) - { - if (!is_array($json)) { - $json = array($json); - } - - $this->json = $json; - } - - /** - * Adds a value to the json array - * - * @param string the value containing JSON data - * @since 0.5.3 - * - * @return void - */ - public function addJson($value) - { - $this->json[] = $value; - } - - /** - * Returns json array - * - * @since 0.5.3 - * - * @return array the fields that contain json - */ - public function getJson() - { - return $this->json; - } - - /** - * Returns storage container - * - * @return array - */ - public function getStorage() - { - return $this->storage; - } - - /** - * Returns report object providing various functions to work with - * detected results. Also the centrifuge data is being set as property - * of the report object. - * - * @return object IDS_Report - */ - public function getReport() - { - if (isset($this->centrifuge) && $this->centrifuge) { - $this->report->setCentrifuge($this->centrifuge); - } - - return $this->report; - } - -} - -/** - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 expandtab - */ diff --git a/libraries/plugins/IDS/Report.php b/libraries/plugins/IDS/Report.php deleted file mode 100644 index 675b976..0000000 --- a/libraries/plugins/IDS/Report.php +++ /dev/null @@ -1,341 +0,0 @@ -. - * - * PHP version 5.1.6+ - * - * @category Security - * @package PHPIDS - * @author Mario Heiderich - * @author Christian Matthies - * @author Lars Strojny - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ - -/** - * PHPIDS report object - * - * The report objects collects a number of events and thereby presents the - * detected results. It provides a convenient API to work with the results. - * - * Note that this class implements Countable, IteratorAggregate and - * a __toString() method - * - * @category Security - * @package PHPIDS - * @author Christian Matthies - * @author Mario Heiderich - * @author Lars Strojny - * @copyright 2007-2009 The PHPIDS Group - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @version Release: $Id:Report.php 517 2007-09-15 15:04:13Z mario $ - * @link http://php-ids.org/ - */ -class IDS_Report implements Countable, IteratorAggregate -{ - - /** - * Event container - * - * @var array - */ - protected $events = array(); - - /** - * List of affected tags - * - * This list of tags is collected from the collected event objects on - * demand when IDS_Report->getTags() is called - * - * @var array - */ - protected $tags = array(); - - /** - * Impact level - * - * The impact level is calculated on demand by adding the results of the - * event objects on IDS_Report->getImpact() - * - * @var integer - */ - protected $impact = 0; - - /** - * Centrifuge data - * - * This variable - initiated as an empty array - carries all information - * about the centrifuge data if available - * - * @var array - */ - protected $centrifuge = array(); - - /** - * Constructor - * - * @param array $events the events the report should include - * - * @return void - */ - public function __construct(array $events = null) - { - if ($events) { - foreach ($events as $event) { - $this->addEvent($event); - } - } - } - - /** - * Adds an IDS_Event object to the report - * - * @param object $event IDS_Event - * - * @return object $this - */ - public function addEvent(IDS_Event $event) - { - $this->clear(); - $this->events[$event->getName()] = $event; - - return $this; - } - - /** - * Get event by name - * - * In most cases an event is identified by the key of the variable that - * contained maliciously appearing content - * - * @param scalar $name the event name - * - * @throws InvalidArgumentException if argument is invalid - * @return mixed IDS_Event object or false if the event does not exist - */ - public function getEvent($name) - { - if (!is_scalar($name)) { - throw new InvalidArgumentException( - 'Invalid argument type given' - ); - } - - if ($this->hasEvent($name)) { - return $this->events[$name]; - } - - return false; - } - - /** - * Returns list of affected tags - * - * @return array - */ - public function getTags() - { - if (!$this->tags) { - $this->tags = array(); - - foreach ($this->events as $event) { - $this->tags = array_merge($this->tags, - $event->getTags()); - } - - $this->tags = array_values(array_unique($this->tags)); - } - - return $this->tags; - } - - /** - * Returns total impact - * - * Each stored IDS_Event object and its IDS_Filter sub-object are called - * to calculate the overall impact level of this request - * - * @return integer - */ - public function getImpact() - { - if (!$this->impact) { - $this->impact = 0; - foreach ($this->events as $event) { - $this->impact += $event->getImpact(); - } - } - - return $this->impact; - } - - /** - * Checks if a specific event with given name exists - * - * @param scalar $name the event name - * - * @throws InvalidArgumentException if argument is illegal - * - * @return boolean - */ - public function hasEvent($name) - { - if (!is_scalar($name)) { - throw new InvalidArgumentException('Invalid argument given'); - } - - return isset($this->events[$name]); - } - - /** - * Returns total amount of events - * - * @return integer - */ - public function count() - { - return count($this->events); - } - - /** - * Return iterator object - * - * In order to provide the possibility to directly iterate over the - * IDS_Event object the IteratorAggregate is implemented. One can easily - * use foreach() to iterate through all stored IDS_Event objects. - * - * @return ArrayObject the event collection - */ - public function getIterator() - { - return new ArrayObject($this->events); - } - - /** - * Checks if any events are registered - * - * @return boolean - */ - public function isEmpty() - { - return empty($this->events); - } - - /** - * Clears calculated/collected values - * - * @return void - */ - protected function clear() - { - $this->impact = 0; - $this->tags = array(); - } - - /** - * This method returns the centrifuge property or null if not - * filled with data - * - * @return array/null - */ - public function getCentrifuge() - { - return ($this->centrifuge && count($this->centrifuge) > 0) - ? $this->centrifuge : null; - } - - /** - * This method sets the centrifuge property - * - * @param array $centrifuge the centrifuge data - * - * @throws InvalidArgumentException if argument is illegal - * - * @return boolean true is arguments were valid - */ - public function setCentrifuge($centrifuge = array()) - { - if (is_array($centrifuge) && $centrifuge) { - $this->centrifuge = $centrifuge; - return true; - } - throw new InvalidArgumentException('Invalid argument given'); - } - - /** - * Directly outputs all available information - * - * @return string - */ - public function __toString() - { - if (!$this->isEmpty()) { - $output = ''; - $output .= 'Total impact: ' . $this->getImpact() . "
\n"; - $output .= 'Affected tags: ' . join(', ', $this->getTags()) . - "
\n"; - - foreach ($this->events as $event) { - $output .= "
\nVariable: " . - htmlspecialchars($event->getName()) . ' | Value: ' . - htmlspecialchars($event->getValue()) . "
\n"; - $output .= 'Impact: ' . $event->getImpact() . ' | Tags: ' . - join(', ', $event->getTags()) . "
\n"; - - foreach ($event as $filter) { - $output .= 'Description: ' . $filter->getDescription() . - ' | '; - $output .= 'Tags: ' . join(', ', $filter->getTags()) . - ' | '; - $output .= 'ID: ' . $filter->getId() . - "
\n"; - } - } - - $output .= '
'; - - if ($centrifuge = $this->getCentrifuge()) { - $output .= 'Centrifuge detection data'; - $output .= '
Threshold: ' . - ((isset($centrifuge['threshold'])&&$centrifuge['threshold']) ? - $centrifuge['threshold'] : '---'); - $output .= '
Ratio: ' . - ((isset($centrifuge['ratio'])&&$centrifuge['ratio']) ? - $centrifuge['ratio'] : '---'); - if(isset($centrifuge['converted'])) { - $output .= '
Converted: ' . $centrifuge['converted']; - } - $output .= "

\n"; - } - } - - return isset($output) ? $output : ''; - } -} - -/** - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 expandtab - */ diff --git a/libraries/plugins/IDS/Version.php b/libraries/plugins/IDS/Version.php deleted file mode 100644 index 094551f..0000000 --- a/libraries/plugins/IDS/Version.php +++ /dev/null @@ -1,49 +0,0 @@ -. - * - * PHP version 5.1.6+ - * - * @category Security - * @package PHPIDS - * @author Mario Heiderich - * @author Christian Matthies - * @author Lars Strojny - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @link http://php-ids.org/ - */ - -/** - * PHPIDS version class - * - * @category Security - * @package PHPIDS - * @author Christian Matthies - * @author Mario Heiderich - * @author Lars Strojny - * @copyright 2007-2009 The PHPIDS Group - * @license http://www.gnu.org/licenses/lgpl.html LGPL - * @version Release: $Id:Converter.php 517 2007-09-15 15:04:13Z mario $ - * @link http://php-ids.org/ - */ -abstract class IDS_Version -{ - const VERSION = '@@phpIdsVersion@@'; -} diff --git a/libraries/plugins/IDS/default_filter.json b/libraries/plugins/IDS/default_filter.json deleted file mode 100644 index 0e68fa0..0000000 --- a/libraries/plugins/IDS/default_filter.json +++ /dev/null @@ -1 +0,0 @@ -{"filters":{"filter":[{"id":"1","rule":"(?:\"[^\"]*[^-]?>)|(?:[^\\w\\s]\\s*\\\/>)|(?:>\")","description":"finds html breaking injections including whitespace attacks","tags":{"tag":["xss","csrf"]},"impact":"4"},{"id":"2","rule":"(?:\"+.*[<=]\\s*\"[^\"]+\")|(?:\"\\s*\\w+\\s*=)|(?:>\\w=\\\/)|(?:#.+\\)[\"\\s]*>)|(?:\"\\s*(?:src|style|on\\w+)\\s*=\\s*\")|(?:[^\"]?\"[,;\\s]+\\w*[\\[\\(])","description":"finds attribute breaking injections including whitespace attacks","tags":{"tag":["xss","csrf"]},"impact":"4"},{"id":"3","rule":"(?:^>[\\w\\s]*<\\\/?\\w{2,}>)","description":"finds unquoted attribute breaking injections","tags":{"tag":["xss","csrf"]},"impact":"2"},{"id":"4","rule":"(?:[+\\\/]\\s*name[\\W\\d]*[)+])|(?:;\\W*url\\s*=)|(?:[^\\w\\s\\\/?:>]\\s*(?:location|referrer|name)\\s*[^\\\/\\w\\s-])","description":"Detects url-, name-, JSON, and referrer-contained payload attacks","tags":{"tag":["xss","csrf"]},"impact":"5"},{"id":"5","rule":"(?:\\W\\s*hash\\s*[^\\w\\s-])|(?:\\w+=\\W*[^,]*,[^\\s(]\\s*\\()|(?:\\?\"[^\\s\"]\":)|(?:(?]*)t(?!rong))|(?:\\)|(?:[^*]\\\/\\*|\\*\\\/[^*])|(?:(?:[\\W\\d]#|--|{)$)|(?:\\\/{3,}.*$)|(?:)","description":"Detects common comment types","tags":{"tag":["xss","csrf","id"]},"impact":"3"},{"id":"37","rule":"(?:\\~])","description":"Detects conditional SQL injection attempts","tags":{"tag":["sqli","id","lfi"]},"impact":"6"},{"id":"42","rule":"(?:\"\\s*or\\s*\"?\\d)|(?:\\\\x(?:23|27|3d))|(?:^.?\"$)|(?:(?:^[\"\\\\]*(?:[\\d\"]+|[^\"]+\"))+\\s*(?:n?and|x?or|not|\\|\\||\\&\\&)\\s*[\\w\"[+&!@(),.-])|(?:[^\\w\\s]\\w+\\s*[|-]\\s*\"\\s*\\w)|(?:@\\w+\\s+(and|or)\\s*[\"\\d]+)|(?:@[\\w-]+\\s(and|or)\\s*[^\\w\\s])|(?:[^\\w\\s:]\\s*\\d\\W+[^\\w\\s]\\s*\".)|(?:\\Winformation_schema|table_name\\W)","description":"Detects classic SQL injection probings 1\/2","tags":{"tag":["sqli","id","lfi"]},"impact":"6"},{"id":"43","rule":"(?:\"\\s*\\*.+(?:or|id)\\W*\"\\d)|(?:\\^\")|(?:^[\\w\\s\"-]+(?<=and\\s)(?<=or\\s)(?<=xor\\s)(?<=nand\\s)(?<=not\\s)(?<=\\|\\|)(?<=\\&\\&)\\w+\\()|(?:\"[\\s\\d]*[^\\w\\s]+\\W*\\d\\W*.*[\"\\d])|(?:\"\\s*[^\\w\\s?]+\\s*[^\\w\\s]+\\s*\")|(?:\"\\s*[^\\w\\s]+\\s*[\\W\\d].*(?:#|--))|(?:\".*\\*\\s*\\d)|(?:\"\\s*or\\s[^\\d]+[\\w-]+.*\\d)|(?:[()*<>%+-][\\w-]+[^\\w\\s]+\"[^,])","description":"Detects classic SQL injection probings 2\/2","tags":{"tag":["sqli","id","lfi"]},"impact":"6"},{"id":"44","rule":"(?:\\d\"\\s+\"\\s+\\d)|(?:^admin\\s*\"|(\\\/\\*)+\"+\\s?(?:--|#|\\\/\\*|{)?)|(?:\"\\s*or[\\w\\s-]+\\s*[+<>=(),-]\\s*[\\d\"])|(?:\"\\s*[^\\w\\s]?=\\s*\")|(?:\"\\W*[+=]+\\W*\")|(?:\"\\s*[!=|][\\d\\s!=+-]+.*[\"(].*$)|(?:\"\\s*[!=|][\\d\\s!=]+.*\\d+$)|(?:\"\\s*like\\W+[\\w\"(])|(?:\\sis\\s*0\\W)|(?:where\\s[\\s\\w\\.,-]+\\s=)|(?:\"[<>~]+\")","description":"Detects basic SQL authentication bypass attempts 1\/3","tags":{"tag":["sqli","id","lfi"]},"impact":"7"},{"id":"45","rule":"(?:union\\s*(?:all|distinct|[(!@]*)?\\s*[([]*\\s*select)|(?:\\w+\\s+like\\s+\\\")|(?:like\\s*\"\\%)|(?:\"\\s*like\\W*[\"\\d])|(?:\"\\s*(?:n?and|x?or|not |\\|\\||\\&\\&)\\s+[\\s\\w]+=\\s*\\w+\\s*having)|(?:\"\\s*\\*\\s*\\w+\\W+\")|(?:\"\\s*[^?\\w\\s=.,;)(]+\\s*[(@\"]*\\s*\\w+\\W+\\w)|(?:select\\s*[\\[\\]()\\s\\w\\.,\"-]+from)|(?:find_in_set\\s*\\()","description":"Detects basic SQL authentication bypass attempts 2\/3","tags":{"tag":["sqli","id","lfi"]},"impact":"7"},{"id":"46","rule":"(?:in\\s*\\(+\\s*select)|(?:(?:n?and|x?or|not |\\|\\||\\&\\&)\\s+[\\s\\w+]+(?:regexp\\s*\\(|sounds\\s+like\\s*\"|[=\\d]+x))|(\"\\s*\\d\\s*(?:--|#))|(?:\"[%&<>^=]+\\d\\s*(=|or))|(?:\"\\W+[\\w+-]+\\s*=\\s*\\d\\W+\")|(?:\"\\s*is\\s*\\d.+\"?\\w)|(?:\"\\|?[\\w-]{3,}[^\\w\\s.,]+\")|(?:\"\\s*is\\s*[\\d.]+\\s*\\W.*\")","description":"Detects basic SQL authentication bypass attempts 3\/3","tags":{"tag":["sqli","id","lfi"]},"impact":"7"},{"id":"47","rule":"(?:[\\d\\W]\\s+as\\s*[\"\\w]+\\s*from)|(?:^[\\W\\d]+\\s*(?:union|select|create|rename|truncate|load|alter|delete|update|insert|desc))|(?:(?:select|create|rename|truncate|load|alter|delete|update|insert|desc)\\s+(?:(?:group_)concat|char|load_file)\\s?\\(?)|(?:end\\s*\\);)|(\"\\s+regexp\\W)|(?:[\\s(]load_file\\s*\\()","description":"Detects concatenated basic SQL injection and SQLLFI attempts","tags":{"tag":["sqli","id","lfi"]},"impact":"5"},{"id":"48","rule":"(?:@.+=\\s*\\(\\s*select)|(?:\\d+\\s*or\\s*\\d+\\s*[\\-+])|(?:\\\/\\w+;?\\s+(?:having|and|or|select)\\W)|(?:\\d\\s+group\\s+by.+\\()|(?:(?:;|#|--)\\s*(?:drop|alter))|(?:(?:;|#|--)\\s*(?:update|insert)\\s*\\w{2,})|(?:[^\\w]SET\\s*@\\w+)|(?:(?:n?and|x?or|not |\\|\\||\\&\\&)[\\s(]+\\w+[\\s)]*[!=+]+[\\s\\d]*[\"=()])","description":"Detects chained SQL injection attempts 1\/2","tags":{"tag":["sqli","id"]},"impact":"6"},{"id":"49","rule":"(?:\"\\s+and\\s*=\\W)|(?:\\(\\s*select\\s*\\w+\\s*\\()|(?:\\*\\\/from)|(?:\\+\\s*\\d+\\s*\\+\\s*@)|(?:\\w\"\\s*(?:[-+=|@]+\\s*)+[\\d(])|(?:coalesce\\s*\\(|@@\\w+\\s*[^\\w\\s])|(?:\\W!+\"\\w)|(?:\";\\s*(?:if|while|begin))|(?:\"[\\s\\d]+=\\s*\\d)|(?:order\\s+by\\s+if\\w*\\s*\\()|(?:[\\s(]+case\\d*\\W.+[tw]hen[\\s(])","description":"Detects chained SQL injection attempts 2\/2","tags":{"tag":["sqli","id"]},"impact":"6"},{"id":"50","rule":"(?:(select|;)\\s+(?:benchmark|if|sleep)\\s*?\\(\\s*\\(?\\s*\\w+)","description":"Detects SQL benchmark and sleep injection attempts including conditional queries","tags":{"tag":["sqli","id"]},"impact":"4"},{"id":"51","rule":"(?:create\\s+function\\s+\\w+\\s+returns)|(?:;\\s*(?:select|create|rename|truncate|load|alter|delete|update|insert|desc)\\s*[\\[(]?\\w{2,})","description":"Detects MySQL UDF injection and other data\/structure manipulation attempts","tags":{"tag":["sqli","id"]},"impact":"6"},{"id":"52","rule":"(?:alter\\s*\\w+.*character\\s+set\\s+\\w+)|(\";\\s*waitfor\\s+time\\s+\")|(?:\";.*:\\s*goto)","description":"Detects MySQL charset switch and MSSQL DoS attempts","tags":{"tag":["sqli","id"]},"impact":"6"},{"id":"53","rule":"(?:procedure\\s+analyse\\s*\\()|(?:;\\s*(declare|open)\\s+[\\w-]+)|(?:create\\s+(procedure|function)\\s*\\w+\\s*\\(\\s*\\)\\s*-)|(?:declare[^\\w]+[@#]\\s*\\w+)|(exec\\s*\\(\\s*@)","description":"Detects MySQL and PostgreSQL stored procedure\/function injections","tags":{"tag":["sqli","id"]},"impact":"7"},{"id":"54","rule":"(?:select\\s*pg_sleep)|(?:waitfor\\s*delay\\s?\"+\\s?\\d)|(?:;\\s*shutdown\\s*(?:;|--|#|\\\/\\*|{))","description":"Detects Postgres pg_sleep injection, waitfor delay attacks and database shutdown attempts","tags":{"tag":["sqli","id"]},"impact":"5"},{"id":"55","rule":"(?:\\sexec\\s+xp_cmdshell)|(?:\"\\s*!\\s*[\"\\w])|(?:from\\W+information_schema\\W)|(?:(?:(?:current_)?user|database|schema|connection_id)\\s*\\([^\\)]*)|(?:\";?\\s*(?:select|union|having)\\s*[^\\s])|(?:\\wiif\\s*\\()|(?:exec\\s+master\\.)|(?:union select @)|(?:union[\\w(\\s]*select)|(?:select.*\\w?user\\()|(?:into[\\s+]+(?:dump|out)file\\s*\")","description":"Detects MSSQL code execution and information gathering attempts","tags":{"tag":["sqli","id"]},"impact":"5"},{"id":"56","rule":"(?:merge.*using\\s*\\()|(execute\\s*immediate\\s*\")|(?:\\W+\\d*\\s*having\\s*[^\\s\\-])|(?:match\\s*[\\w(),+-]+\\s*against\\s*\\()","description":"Detects MATCH AGAINST, MERGE, EXECUTE IMMEDIATE and HAVING injections","tags":{"tag":["sqli","id"]},"impact":"5"},{"id":"57","rule":"(?:,.*[)\\da-f\"]\"(?:\".*\"|\\Z|[^\"]+))|(?:\\Wselect.+\\W*from)|((?:select|create|rename|truncate|load|alter|delete|update|insert|desc)\\s*\\(\\s*space\\s*\\()","description":"Detects MySQL comment-\/space-obfuscated injections and backtick termination","tags":{"tag":["sqli","id"]},"impact":"5"},{"id":"58","rule":"(?:@[\\w-]+\\s*\\()|(?:]\\s*\\(\\s*[\"!]\\s*\\w)|(?:<[?%](?:php)?.*(?:[?%]>)?)|(?:;[\\s\\w|]*\\$\\w+\\s*=)|(?:\\$\\w+\\s*=(?:(?:\\s*\\$?\\w+\\s*[(;])|\\s*\".*\"))|(?:;\\s*\\{\\W*\\w+\\s*\\()","description":"Detects code injection attempts 1\/3","tags":{"tag":["id","rfe","lfi"]},"impact":"7"},{"id":"59","rule":"(?:(?:[;]+|(<[?%](?:php)?)).*(?:define|eval|file_get_contents|include|require|require_once|set|shell_exec|phpinfo|system|passthru|preg_\\w+|execute)\\s*[\"(@])","description":"Detects code injection attempts 2\/3","tags":{"tag":["id","rfe","lfi"]},"impact":"7"},{"id":"60","rule":"(?:(?:[;]+|(<[?%](?:php)?)).*[^\\w](?:echo|print|print_r|var_dump|[fp]open))|(?:;\\s*rm\\s+-\\w+\\s+)|(?:;.*{.*\\$\\w+\\s*=)|(?:\\$\\w+\\s*\\[\\]\\s*=\\s*)","description":"Detects code injection attempts 3\/3","tags":{"tag":["id","rfe","lfi"]},"impact":"7"},{"id":"61","rule":"(?:\\w+]?(?))","description":"Finds attribute breaking injections including obfuscated attributes","tags":{"tag":["xss","csrf"]},"impact":"4"},{"id":"69","rule":"(?:(?:msgbox|eval)\\s*\\+|(?:language\\s*=\\*vbscript))","description":"Finds basic VBScript injection attempts","tags":{"tag":["xss","csrf"]},"impact":"4"},{"id":"70","rule":"(?:\\[\\$(?:ne|eq|lte?|gte?|n?in|mod|all|size|exists|type|slice|or)\\])","description":"Finds basic MongoDB SQL injection attempts","tags":{"tag":"sqli"},"impact":"4"},{"id":"71","rule":"(?:[\\s\\d\\\/\"]+(?:on\\w+|style|poster|background)=[$\"\\w])|(?:-type\\s*:\\s*multipart)","description":"finds malicious attribute injection attempts and MHTML attacks","tags":{"tag":["xss","csrf"]},"impact":"6"},{"id":"72","rule":"(?:(sleep\\((\\s*)(\\d*)(\\s*)\\)|benchmark\\((.*)\\,(.*)\\)))","description":"Detects blind sqli tests using sleep() or benchmark().","tags":{"tag":["sqli","id"]},"impact":"4"},{"id":"73","rule":"(?i:(\\%SYSTEMROOT\\%))","description":"An attacker is trying to locate a file to read or write.","tags":{"tag":["files","id"]},"impact":"4"},{"id":"74","rule":"(?i:(ping(.*)[\\-(.*)\\w|\\w(.*)\\-]))","description":"Detects remote code exectuion tests. Will match \"ping -n 3 localhost\" and \"ping localhost -n 3\"","tags":{"tag":["Command Execution","id"]},"impact":"5"},{"id":"75","rule":"(?:(((.*)\\%[c|d|i|e|f|g|o|s|u|x|p|n]){8}))","description":"Looking for a format string attack","tags":{"tag":"format string"},"impact":"4"},{"id":"76","rule":"(?:(union(.*)select(.*)from))","description":"Looking for basic sql injection. Common attack string for mysql, oracle and others.","tags":{"tag":["sqli","id"]},"impact":"3"},{"id":"77","rule":"(?:^(-0000023456|4294967295|4294967296|2147483648|2147483647|0000012345|-2147483648|-2147483649|0000023456|2.2250738585072007e-308|1e309)$)","description":"Looking for intiger overflow attacks, these are taken from skipfish, except 2.2250738585072007e-308 is the \"magic number\" crash","tags":{"tag":["sqli","id"]},"impact":"3"}]}} \ No newline at end of file diff --git a/libraries/plugins/IDS/default_filter.xml b/libraries/plugins/IDS/default_filter.xml deleted file mode 100644 index 0a6bc5a..0000000 --- a/libraries/plugins/IDS/default_filter.xml +++ /dev/null @@ -1,930 +0,0 @@ - - - 1 - )|(?:[^\w\s]\s*\/>)|(?:>")]]> - Finds Html Breaking Injections Including Whitespace Attacks - - xss - csrf - - 4 - - - 2 - \w=\/)|(?:#.+\)["\s]*>)|(?:"\s*(?:src|style|on\w+)\s*=\s*")|(?:[^"]?"[,;\s]+\w*[\[\(])]]> - Finds Attribute Breaking Injections Including Whitespace Attacks - - xss - csrf - - 4 - - - 3 - [\w\s]*<\/?\w{2,}>)]]> - Finds Unquoted Attribute Breaking Injections - - xss - csrf - - 2 - - - 4 - ]\s*(?:location|referrer|name)\s*[^\/\w\s-])]]> - Detects Url-, Name-, JSON, And Referrer-contained Payload Attacks - - xss - csrf - - 5 - - - 5 - - Detects Hash-contained Xss Payload Attacks, Setter Usage And Property Overloading - - xss - csrf - - 5 - - - 6 - - Detects Self Contained Xss Via With(), Common Loops And Regex To String Conversion - - xss - csrf - - 5 - - - 7 - - Detects JavaScript With(), Ternary Operators And XML Predicate Attacks - - xss - csrf - - 5 - - - 8 - - Detects Self-executing JavaScript Functions - - xss - csrf - - 5 - - - 9 - - Detects The IE Octal, Hex And Unicode Entities - - xss - csrf - - 2 - - - 10 - - Detects Basic Directory Traversal - - dt - id - lfi - - 5 - - - 11 - - Detects Specific Directory And Path Traversal - - dt - id - lfi - - 5 - - - 12 - - Detects Etc/passwd Inclusion Attempts - - dt - id - lfi - - 5 - - - 13 - - Detects Halfwidth/fullwidth Encoded Unicode HTML Breaking Attempts - - xss - csrf - - 3 - - - 14 - - Detects Possible Includes, VBSCript/JScript Encodeed And Packed Functions - - xss - csrf - id - rfe - - 5 - - - 15 - - Detects JavaScript DOM/miscellaneous Properties And Methods - - xss - csrf - id - rfe - - 6 - - - 16 - - Detects Possible Includes And Typical Script Methods - - xss - csrf - id - rfe - - 5 - - - 17 - - Detects JavaScript Object Properties And Methods - - xss - csrf - id - rfe - - 4 - - - 18 - - Detects JavaScript Array Properties And Methods - - xss - csrf - id - rfe - - 4 - - - 19 - - Detects JavaScript String Properties And Methods - - xss - csrf - id - rfe - - 4 - - - 20 - - Detects JavaScript Language Constructs - - xss - csrf - id - rfe - - 4 - - - 21 - - Detects Very Basic XSS Probings - - xss - csrf - id - rfe - - 3 - - - 22 - - Detects Advanced XSS Probings Via Script(), RexExp, Constructors And XML Namespaces - - xss - csrf - id - rfe - - 5 - - - 23 - - Detects JavaScript Location/document Property Access And Window Access Obfuscation - - xss - csrf - - 5 - - - 24 - - Detects Basic Obfuscated JavaScript Script Injections - - xss - csrf - - 5 - - - 25 - - Detects Obfuscated JavaScript Script Injections - - xss - csrf - - 5 - - - 26 - - Detects JavaScript Cookie Stealing And Redirection Attempts - - xss - csrf - - 4 - - - 27 - - Detects Data: URL Injections, VBS Injections And Common URI Schemes - - xss - rfe - - 5 - - - 28 - - Detects IE Firefoxurl Injections, Cache Poisoning Attempts And Local File Inclusion/execution - - xss - rfe - lfi - csrf - - 5 - - - 29 - - Detects Bindings And Behavior Injections - - xss - csrf - rfe - - 4 - - - 30 - - Detects Common XSS Concatenation Patterns 1/2 - - xss - csrf - id - rfe - - 4 - - - 31 - - Detects Common XSS Concatenation Patterns 2/2 - - xss - csrf - id - rfe - - 4 - - - 32 - - Detects Possible Event Handlers - - xss - csrf - - 4 - - - 33 - ]*)t(?!rong))|(?:\ - Detects Obfuscated Script Tags And XML Wrapped HTML - - xss - - 4 - - - 34 - - Detects Attributes In Closing Tags And Conditional Compilation Tokens - - xss - csrf - - 4 - - - 35 - )|(?:[^*]\/\*|\*\/[^*])|(?:(?:[\W\d]#|--|{)$)|(?:\/{3,}.*$)|(?:)]]> - Detects Common Comment Types - - xss - csrf - id - - 3 - - - 36 - - Detects Base Href Injections And XML Entity Injections - - xss - csrf - id - - 5 - - - 37 - - Detects Possibly Malicious Html Elements Including Some Attributes - - xss - csrf - id - rfe - lfi - - 4 - - - 39 - - Detects MySQL Comments, Conditions And Ch(a)r Injections - - sqli - id - lfi - - 6 - - - 40 - ~])]]> - Detects Conditional SQL Injection Attempts - - sqli - id - lfi - - 6 - - - 41 - - Detects Conditional SQL Injection Attempts - - sqli - id - lfi - - 0 - - - 42 - %+-][\w-]+[^\w\s]+"[^,])]]> - Detects Classic SQL Injection Probings 2/2 - - sqli - id - lfi - - 6 - - - 43 - =(),-]\s*[\d"])|(?:"\s*[^\w\s]?=\s*")|(?:"\W*[+=]+\W*")|(?:"\s*[!=|][\d\s!=+-]+.*["(].*$)|(?:"\s*[!=|][\d\s!=]+.*\d+$)|(?:"\s*like\W+[\w"(])|(?:\sis\s*0\W)|(?:where\s[\s\w\.,-]+\s=)|(?:"[<>~]+")]]> - Detects Basic SQL Authentication Bypass Attempts 1/3 - - sqli - id - lfi - - 7 - - - 44 - - Detects Basic SQL Authentication Bypass Attempts 2/3 - - sqli - id - lfi - - 7 - - - 45 - ^=]+\d\s*(=|or))|(?:"\W+[\w+-]+\s*=\s*\d\W+")|(?:"\s*is\s*\d.+"?\w)|(?:"\|?[\w-]{3,}[^\w\s.,]+")|(?:"\s*is\s*[\d.]+\s*\W.*")]]> - Detects Basic SQL Authentication Bypass Attempts 3/3 - - sqli - id - lfi - - 7 - - - 46 - - Detects Concatenated Basic SQL Injection And SQLLFI Attempts - - sqli - id - lfi - - 5 - - - 47 - - Detects Chained SQL Injection Attempts 1/2 - - sqli - id - - 6 - - - 48 - - Detects Chained SQL Injection Attempts 2/2 - - sqli - id - - 6 - - - 49 - - Detects SQL Benchmark And Sleep Injection Attempts Including Conditional Queries - - sqli - id - - 4 - - - 50 - - Detects MySQL UDF Injection And Other Data/structure Manipulation Attempts - - sqli - id - - 6 - - - 51 - - Detects MySQL Charset Switch And MSSQL DoS Attempts - - sqli - id - - 6 - - - 52 - - Detects MySQL And PostgreSQL Stored Procedure/function Injections - - sqli - id - - 7 - - - 53 - - Detects Postgres Pg_sleep Injection, Waitfor Delay Attacks And Database Shutdown Attempts - - sqli - id - - 5 - - - 54 - - Detects MSSQL Code Execution And Information Gathering Attempts - - sqli - id - - 5 - - - 55 - - Detects MATCH AGAINST, MERGE, EXECUTE IMMEDIATE And HAVING Injections - - sqli - id - - 5 - - - 56 - - Detects MySQL Comment-/space-obfuscated Injections And Backtick Termination - - sqli - id - - 5 - - - 57 - )?)|(?:;[\s\w|]*\$\w+\s*=)|(?:\$\w+\s*=(?:(?:\s*\$?\w+\s*[(;])|\s*".*"))|(?:;\s*\{\W*\w+\s*\()]]> - Detects Code Injection Attempts 1/3 - - id - rfe - lfi - - 7 - - - 58 - - Detects Code Injection Attempts 2/3 - - id - rfe - lfi - - 7 - - - 59 - - Detects Code Injection Attempts 3/3 - - id - rfe - lfi - - 7 - - - 60 - - Detects Url Injections And RFE Attempts - - id - rfe - lfi - - 5 - - - 61 - - Detects Common Function Declarations And Special JS Operators - - id - rfe - lfi - - 5 - - - 62 - - Detects Common Mail Header Injections - - id - spam - - 5 - - - 63 - - Detects Perl Echo Shellcode Injection And LDAP Vectors - - lfi - rfe - - 5 - - - 64 - - Detects Basic XSS DoS Attempts - - rfe - dos - - 5 - - - 65 - - Detects Unknown Attack Vectors Based On PHPIDS Centrifuge Detection - - xss - csrf - id - rfe - lfi - - 7 - - - 66 - ))]]> - Finds Attribute Breaking Injections Including Obfuscated Attributes - - xss - csrf - - 4 - - - 67 - - Finds Basic VBScript Injection Attempts - - xss - csrf - - 4 - - - 68 - - Finds Basic MongoDB SQL Injection Attempts - - sqli - - 4 - - - 69 - - Finds Malicious Attribute Injection Attempts And MHTML Attacks - - xss - csrf - - 6 - - - 70 - - Detects Blind Sqli Tests Using Sleep() Or Benchmark(). - - sqli - id - - 4 - - - 71 - - An Attacker Is Trying To Locate A File To Read Or Write. - - files - id - - 4 - - - 73 - - Looking For A Format String Attack - - format string - - 4 - - - 74 - - Looking For Basic Sql Injection. Common Attack String For Mysql, Oracle And Others. - - sqli - id - - 3 - - - 75 - - Looking For Integer Overflow Attacks, These Are Taken From Skipfish, Except 2.2250738585072007e-308 Is The "magic Number" Crash - - sqli - id - - 3 - - - 76 - - Rate Limit Of Requests Exceeded - - DoS - - 3 - - - 77 - - Suspicious Bots Scanners - - DoS - - 1 - - - 78 - - Shellshock Vulnerability (CVE-2014-6271) - - none - - 3 - - - 79 - - ]]> - SSI Command Injection - - none - - 2 - - - 80 - - TimThumb WebShot Remote Code Execution (0-day) - - none - - 3 - - - 81 - - Joomla 1.5-3.4.5 Object Injection Remote Command Execution - - none - - 3 - - - 82 - \/\\\\*\\x60] - ]]> - SQL Injection (username) - - none - - 3 - - - 83 - - SQL Injection (time-based) - - none - - 2 - - - 84 - - Malformed Host Header - - none - - 2 - - - 85 - - Attempt To Access Phpinfo.php - - none - - 1 - - - 86 - \\s*\/dev\/(?:tc|ud)p\/[^\/]{5,255}\/\\d{1,5}\\b - ]]> - Dev TCP UDP Device File Access (possible Reverse Shell) - - none - - 3 - - - 87 - - Shell Backdoor - - none - - 3 - - - 88 - - Shell Backdoor (img) - - none - - 3 - - - 89 - - Shell Backdoor (p) - - none - - 3 - - \ No newline at end of file diff --git a/libraries/plugins/IDS/default_filter_orig.xml b/libraries/plugins/IDS/default_filter_orig.xml deleted file mode 100644 index 1799e8b..0000000 --- a/libraries/plugins/IDS/default_filter_orig.xml +++ /dev/null @@ -1,798 +0,0 @@ - - - 1 - )|(?:[^\w\s]\s*\/>)|(?:>")]]> - finds html breaking injections including whitespace attacks - - xss - csrf - - 4 - - - 2 - \w=\/)|(?:#.+\)["\s]*>)|(?:"\s*(?:src|style|on\w+)\s*=\s*")|(?:[^"]?"[,;\s]+\w*[\[\(])]]> - finds attribute breaking injections including whitespace attacks - - xss - csrf - - 4 - - - 3 - [\w\s]*<\/?\w{2,}>)]]> - finds unquoted attribute breaking injections - - xss - csrf - - 2 - - - 4 - ]\s*(?:location|referrer|name)\s*[^\/\w\s-])]]> - Detects url-, name-, JSON, and referrer-contained payload attacks - - xss - csrf - - 5 - - - 5 - - Detects hash-contained xss payload attacks, setter usage and property overloading - - xss - csrf - - 5 - - - 6 - - Detects self contained xss via with(), common loops and regex to string conversion - - xss - csrf - - 5 - - - 7 - - Detects JavaScript with(), ternary operators and XML predicate attacks - - xss - csrf - - 5 - - - 8 - - Detects self-executing JavaScript functions - - xss - csrf - - 5 - - - 9 - - Detects the IE octal, hex and unicode entities - - xss - csrf - - 2 - - - 10 - - Detects basic directory traversal - - dt - id - lfi - - 5 - - - 11 - - Detects specific directory and path traversal - - dt - id - lfi - - 5 - - - 12 - - Detects etc/passwd inclusion attempts - - dt - id - lfi - - 5 - - - 13 - - Detects halfwidth/fullwidth encoded unicode HTML breaking attempts - - xss - csrf - - 3 - - - 14 - - Detects possible includes, VBSCript/JScript encodeed and packed functions - - xss - csrf - id - rfe - - 5 - - - 15 - - Detects JavaScript DOM/miscellaneous properties and methods - - xss - csrf - id - rfe - - 6 - - - 16 - - Detects possible includes and typical script methods - - xss - csrf - id - rfe - - 5 - - - 17 - - Detects JavaScript object properties and methods - - xss - csrf - id - rfe - - 4 - - - 18 - - Detects JavaScript array properties and methods - - xss - csrf - id - rfe - - 4 - - - 19 - - Detects JavaScript string properties and methods - - xss - csrf - id - rfe - - 4 - - - 20 - - Detects JavaScript language constructs - - xss - csrf - id - rfe - - 4 - - - 21 - - Detects very basic XSS probings - - xss - csrf - id - rfe - - 3 - - - 22 - - Detects advanced XSS probings via Script(), RexExp, constructors and XML namespaces - - xss - csrf - id - rfe - - 5 - - - 23 - - Detects JavaScript location/document property access and window access obfuscation - - xss - csrf - - 5 - - - 24 - - Detects basic obfuscated JavaScript script injections - - xss - csrf - - 5 - - - 25 - - Detects obfuscated JavaScript script injections - - xss - csrf - - 5 - - - 26 - - Detects JavaScript cookie stealing and redirection attempts - - xss - csrf - - 4 - - - 27 - - Detects data: URL injections, VBS injections and common URI schemes - - xss - rfe - - 5 - - - 28 - - Detects IE firefoxurl injections, cache poisoning attempts and local file inclusion/execution - - xss - rfe - lfi - csrf - - 5 - - - 29 - - Detects bindings and behavior injections - - xss - csrf - rfe - - 4 - - - 30 - - Detects common XSS concatenation patterns 1/2 - - xss - csrf - id - rfe - - 4 - - - 31 - - Detects common XSS concatenation patterns 2/2 - - xss - csrf - id - rfe - - 4 - - - 32 - - Detects possible event handlers - - xss - csrf - - 4 - - - 33 - ]*)t(?!rong))|(?:\ - Detects obfuscated script tags and XML wrapped HTML - - xss - - 4 - - - 34 - - Detects attributes in closing tags and conditional compilation tokens - - xss - csrf - - 4 - - - 35 - )|(?:[^*]\/\*|\*\/[^*])|(?:(?:[\W\d]#|--|{)$)|(?:\/{3,}.*$)|(?:)]]> - Detects common comment types - - xss - csrf - id - - 3 - - - 37 - - Detects base href injections and XML entity injections - - xss - csrf - id - - 5 - - - 38 - - Detects possibly malicious html elements including some attributes - - xss - csrf - id - rfe - lfi - - 4 - - - 39 - - Detects nullbytes and other dangerous characters - - id - rfe - xss - - 5 - - - 40 - - Detects MySQL comments, conditions and ch(a)r injections - - sqli - id - lfi - - 6 - - - 41 - ~])]]> - Detects conditional SQL injection attempts - - sqli - id - lfi - - 6 - - - 42 - - Detects conditional SQL injection attempts - - sqli - id - lfi - - - - 43 - %+-][\w-]+[^\w\s]+"[^,])]]> - Detects classic SQL injection probings 2/2 - - sqli - id - lfi - - 6 - - - 44 - =(),-]\s*[\d"])|(?:"\s*[^\w\s]?=\s*")|(?:"\W*[+=]+\W*")|(?:"\s*[!=|][\d\s!=+-]+.*["(].*$)|(?:"\s*[!=|][\d\s!=]+.*\d+$)|(?:"\s*like\W+[\w"(])|(?:\sis\s*0\W)|(?:where\s[\s\w\.,-]+\s=)|(?:"[<>~]+")]]> - Detects basic SQL authentication bypass attempts 1/3 - - sqli - id - lfi - - 7 - - - 45 - - Detects basic SQL authentication bypass attempts 2/3 - - sqli - id - lfi - - 7 - - - 46 - ^=]+\d\s*(=|or))|(?:"\W+[\w+-]+\s*=\s*\d\W+")|(?:"\s*is\s*\d.+"?\w)|(?:"\|?[\w-]{3,}[^\w\s.,]+")|(?:"\s*is\s*[\d.]+\s*\W.*")]]> - Detects basic SQL authentication bypass attempts 3/3 - - sqli - id - lfi - - 7 - - - 47 - - Detects concatenated basic SQL injection and SQLLFI attempts - - sqli - id - lfi - - 5 - - - 48 - - Detects chained SQL injection attempts 1/2 - - sqli - id - - 6 - - - 49 - - Detects chained SQL injection attempts 2/2 - - sqli - id - - 6 - - - 50 - - Detects SQL benchmark and sleep injection attempts including conditional queries - - sqli - id - - 4 - - - 51 - - Detects MySQL UDF injection and other data/structure manipulation attempts - - sqli - id - - 6 - - - 52 - - Detects MySQL charset switch and MSSQL DoS attempts - - sqli - id - - 6 - - - 53 - - Detects MySQL and PostgreSQL stored procedure/function injections - - sqli - id - - 7 - - - 54 - - Detects Postgres pg_sleep injection, waitfor delay attacks and database shutdown attempts - - sqli - id - - 5 - - - 55 - - Detects MSSQL code execution and information gathering attempts - - sqli - id - - 5 - - - 56 - - Detects MATCH AGAINST, MERGE, EXECUTE IMMEDIATE and HAVING injections - - sqli - id - - 5 - - - 57 - - Detects MySQL comment-/space-obfuscated injections and backtick termination - - sqli - id - - 5 - - - 58 - )?)|(?:;[\s\w|]*\$\w+\s*=)|(?:\$\w+\s*=(?:(?:\s*\$?\w+\s*[(;])|\s*".*"))|(?:;\s*\{\W*\w+\s*\()]]> - Detects code injection attempts 1/3 - - id - rfe - lfi - - 7 - - - 59 - - Detects code injection attempts 2/3 - - id - rfe - lfi - - 7 - - - 60 - - Detects code injection attempts 3/3 - - id - rfe - lfi - - 7 - - - 61 - - Detects url injections and RFE attempts - - id - rfe - lfi - - 5 - - - 62 - - Detects common function declarations and special JS operators - - id - rfe - lfi - - 5 - - - 63 - - Detects common mail header injections - - id - spam - - 5 - - - 64 - - Detects perl echo shellcode injection and LDAP vectors - - lfi - rfe - - 5 - - - 65 - - Detects basic XSS DoS attempts - - rfe - dos - - 5 - - - 67 - - Detects unknown attack vectors based on PHPIDS Centrifuge detection - - xss - csrf - id - rfe - lfi - - 7 - - - 68 - ))]]> - Finds attribute breaking injections including obfuscated attributes - - xss - csrf - - 4 - - - 69 - - Finds basic VBScript injection attempts - - xss - csrf - - 4 - - - 70 - - Finds basic MongoDB SQL injection attempts - - sqli - - 4 - - - 71 - - finds malicious attribute injection attempts and MHTML attacks - - xss - csrf - - 6 - - - 72 - - Detects blind sqli tests using sleep() or benchmark(). - - sqli - id - - 4 - - - 73 - - An attacker is trying to locate a file to read or write. - - files - id - - 4 - - - 74 - - Detects remote code exectuion tests. Will match "ping -n 3 localhost" and "ping localhost -n 3" - - Command Execution - id - - 5 - - - 75 - - Looking for a format string attack - - format string - - 4 - - - 76 - - Looking for basic sql injection. Common attack string for mysql, oracle and others. - - sqli - id - - 3 - - - 77 - - Looking for integer overflow attacks, these are taken from skipfish, except 2.2250738585072007e-308 is the "magic number" crash - - sqli - id - - 3 - - \ No newline at end of file diff --git a/libraries/plugins/IDS/tmp/bad_bots.txt b/libraries/plugins/IDS/tmp/bad_bots.txt deleted file mode 100644 index aa08a0a..0000000 --- a/libraries/plugins/IDS/tmp/bad_bots.txt +++ /dev/null @@ -1 +0,0 @@ -@nonymouse|ADSARobot|Advanced\ Email\ Extractor|ah-ha|aktuelles|almaden|amzn_assoc|Anarchie|Art-Online|AspiWeb|ASPSeek|ASSORT|ATHENS|Atomz|attach|attache|autoemailspider|BackWeb|Bandit|BatchFTP|bdfetch|big\.brother|BlackWidow|bmclient|Boston\ Project|Bot\ mailto:craftbot@yahoo\.com|BravoBrian\ SpiderEngine\ MarcoPolo|Buddy|Bullseye|bumblebee|capture|CherryPicker|ChinaClaw|CICC|clipping|Crescent\ Internet\ ToolPack|cURL|Custo|cyberalert|Deweb|diagem|Digger|Digimarc|DIIbot|DirectUpdate|DISCo|Drip|DSurf15a|DTS\.Agent|EasyDL|eCatch|echo\ extense|ecollector|efp@gmx\.net|EirGrabber|Email\ Extractor|EmailCollector|EmailSiphon|EmailWolf|Express\ WebPictures|ExtractorPro|EyeNetIE|fastlwspider|FavOrg|Favorites\ Sweeper|Fetch\ API\ Request|FEZhead|FileHound|FlashGet|FlickBot|fluffy|frontpage|GalaxyBot|Generic|Getleft|GetSmart|GetWeb!|GetWebPage|gigabaz|Girafabot|Go!Zilla|Go-Ahead-Got-It|GornKer|Grabber|GrabNet|Grafula|Green\ Research|Harvest|hhjhj@yahoo|hloader|HMView|HomePageSearch|http\ generic|HTTPConnect|httpdown|HTTrack|IBM_Planetwide|Image\ Stripper|Image\ Sucker|imagefetch|IncyWincy|Indy\ Library|informant|Ingelin|InterGET|Internet\ Ninja|InternetLinkAgent|InternetSeer\.com|iOpus|IPiumBot\ laurion(dot)com|Iria|Irvine|Jakarta|JBH*Agent|JetCar|JustView|Kapere|KWebGet|Lachesis|larbin|LeechFTP|LexiBot|lftp|libwww|likse|Link*Sleuth|LINKS\ ARoMATIZED|LinkWalker|lwp-trivial|Mac\ Finder|Mag-Net|Magnet|Mass\ Downloader|MCspider|MemoWeb|Microsoft\ URL\ Control|MIDown\ tool|minibot\(NaverRobot\)|Missigua\ Locator|Mister\ PiX|MMMtoCrawl\/UrlDispatcherLLL|MSProxy|multithreaddb|nationaldirectory|Navroad|NearSite|Net\ Vampire|NetAnts|NetCarta|netcraft|netfactual|NetMechanic|netprospector|NetResearchServer|NetSpider|NetZIP|NEWT|nicerspro|NPBot|Octopus|Offline\ Explorer|Offline\ Navigator|OpaL|Openfind|OpenTextSiteCrawler|OutWit|PackRat|PageGrabber|Papa\ Foto|pavuk|pcBrowser|PersonaPilot|PingALink|Pockey|Program\ Shareware|psbot|PSurf|puf|Pump|PushSite|QRVA|QuepasaCreep|RealDownload|Reaper|Recorder|ReGet|replacer|RepoMonkey|Robozilla|Rover|RPT-HTTPClient|Rsync|SearchExpress|searchhippo|searchterms\.it|Second\ Street\ Research|Shai|sitecheck|SiteMapper|SiteSnagger|SlySearch|SmartDownload|snagger|SpaceBison|Spegla|SpiderBot|SqWorm|Star\ Downloader|Stripper|Sucker|SuperBot|SuperHTTP|Surfbot|SurfWalker|Szukacz|tAkeOut|tarspider|Teleport\ Pro|Telesoft|Templeton|traffixer|TrueRobot|TuringOS|TurnitinBot|TV33_Mercator|UIowaCrawler|URL_Spider_Pro|UtilMind|Vacuum|vagabondo|vayala|visibilitygap|vobsub|VoidEYE|vspider|w3mir|Web\ Data\ Extractor|Web\ Downloader|Web\ Image\ Collector|Web\ Sucker|web\.by\.mail|WebAuto|webbandit|Webclipping|webcollage|webcollector|WebCopier|webcraft@bea|WebDAV|webdevil|webdownloader|Webdup|WebEmailExtractor|WebFetch|WebGo\ IS|WebHook|Webinator|WebLeacher|WebMiner|WebMirror|webmole|WebReaper|WebSauger|WEBsaver|Website\ eXtractor|Website\ Quester|WebSnake|Webster|WebStripper|websucker|webvac|webwalk|webweasel|WebWhacker|WebZIP|Wget|whizbang|WhosTalking|Widow|WISEbot|WUMPUS|Wweb|WWWOFFLE|Wysigot|x-Tractor|Xaldon\ WebSpider|XGET \ No newline at end of file diff --git a/libraries/plugins/IDS/tmp/cookie_ips.txt b/libraries/plugins/IDS/tmp/cookie_ips.txt deleted file mode 100644 index 3fb3cf7..0000000 --- a/libraries/plugins/IDS/tmp/cookie_ips.txt +++ /dev/null @@ -1,2 +0,0 @@ -172.19.20.122,2,1429360837,14, -::1,0,1430174122,16, diff --git a/libraries/plugins/IDS/tmp/custom_rules.txt b/libraries/plugins/IDS/tmp/custom_rules.txt deleted file mode 100644 index e6e3202..0000000 --- a/libraries/plugins/IDS/tmp/custom_rules.txt +++ /dev/null @@ -1 +0,0 @@ -a:5:{s:7:"trusted";a:0:{}s:7:"blocked";a:0:{}s:9:"exception";a:1:{i:0;s:10:"COOKIE.lol";}s:4:"html";a:0:{}s:4:"json";a:0:{}} \ No newline at end of file diff --git a/libraries/plugins/IDS/tmp/ips.txt b/libraries/plugins/IDS/tmp/ips.txt deleted file mode 100644 index 2fcf5f7..0000000 --- a/libraries/plugins/IDS/tmp/ips.txt +++ /dev/null @@ -1,2 +0,0 @@ -172.19.13.36,0,1426076415,3, -::1,0,1428069894,5, diff --git a/libraries/plugins/IDS/tmp/phpids_log.txt b/libraries/plugins/IDS/tmp/phpids_log.txt deleted file mode 100644 index 3932af9..0000000 --- a/libraries/plugins/IDS/tmp/phpids_log.txt +++ /dev/null @@ -1,804 +0,0 @@ -"local/unknown",2008-08-18T18:00:29+02:00,36,"xss csrf id rfe lfi sqli","test=%5C%22%3E%3Cscript%3Eeval%28window.name%29%3C%2Fscript%3E","%2Fphp-ids.org%2Ftrunk%2Fdocs%2Fexamples%2Fexample.php%3Ftest%3D%2522%253E%253Cscript%253Eeval%28window.name%29%253C%2Fscript%253E" -"local/unknown",2008-08-18T18:00:32+02:00,36,"xss csrf id rfe lfi sqli","test=%5C%22%3E%3Cscript%3Eeval%28window.name%29%3C%2Fscript%3E","%2Fphp-ids.org%2Ftrunk%2Fdocs%2Fexamples%2Fexample.php%3Ftest%3D%2522%253E%253Cscript%253Eeval%28window.name%29%253C%2Fscript%253E" -"local/unknown",2008-08-18T18:00:46+02:00,36,"xss csrf id rfe lfi sqli","test=%5C%22%3E%3Cscript%3Eeval%28window.name%29%3C%2Fscript%3E","%2Fphp-ids.org%2Ftrunk%2Fdocs%2Fexamples%2Fexample.php%3Ftest%3D%2522%253E%253Cscript%253Eeval%28window.name%29%253C%2Fscript%253E" -"local/unknown",2008-08-18T18:27:34+02:00,36,"xss csrf id rfe lfi sqli","test=%5C%22%3E%3Cscript%3Eeval%28window.name%29%3C%2Fscript%3E","%2Fphp-ids.org%2Ftrunk%2Fdocs%2Fexamples%2Fexample.php%3Ftest%3D%2522%253E%253Cscript%253Eeval%28window.name%29%253C%2Fscript%253E" -"local/unknown",2009-06-24T12:58:37+02:00,36,"xss csrf id rfe lfi sqli","REQUEST.test=%5C%22%3E%3Cscript%3Eeval%28window.name%29%3C%2Fscript%3E GET.test=%5C%22%3E%3Cscript%3Eeval%28window.name%29%3C%2Fscript%3E","%2Fphp-ids.org%2Ftrunk%2Fdocs%2Fexamples%2Fexample.php%3Ftest%3D%2522%253E%253Cscript%253Eeval%28window.name%29%253C%2Fscript%253E","127.0.0.1" -"local/unknown",2009-06-24T12:59:27+02:00,36,"xss csrf id rfe lfi sqli","REQUEST.test=%5C%22%3E%3Cscript%3Eeval%28window.name%29%3C%2Fscript%3E GET.test=%5C%22%3E%3Cscript%3Eeval%28window.name%29%3C%2Fscript%3E","%2Fphp-ids.org%2Ftrunk%2Fdocs%2Fexamples%2Fexample.php%3Ftest%3D%2522%253E%253Cscript%253Eeval%28window.name%29%253C%2Fscript%253E","127.0.0.1" -"local/unknown",2009-06-24T12:59:29+02:00,36,"xss csrf id rfe lfi sqli","REQUEST.test=%5C%22%3E%3Cscript%3Eeval%28window.name%29%3C%2Fscript%3E GET.test=%5C%22%3E%3Cscript%3Eeval%28window.name%29%3C%2Fscript%3E","%2Fphp-ids.org%2Ftrunk%2Fdocs%2Fexamples%2Fexample.php%3Ftest%3D%2522%253E%253Cscript%253Eeval%28window.name%29%253C%2Fscript%253E","127.0.0.1" -"local/unknown",2009-06-24T12:59:42+02:00,36,"xss csrf id rfe lfi sqli","REQUEST.__wysiwyg=%5C%22%3E%3Cscript%3Eeval%28window.name%29%3C%2Fscript%3E GET.__wysiwyg=%5C%22%3E%3Cscript%3Eeval%28window.name%29%3C%2Fscript%3E","%2Fphp-ids.org%2Ftrunk%2Fdocs%2Fexamples%2Fexample.php%3F__wysiwyg%3D%2522%253E%253Cscript%253Eeval%28window.name%29%253C%2Fscript%253E","127.0.0.1" -"local/unknown",2009-06-24T13:00:01+02:00,36,"xss csrf id rfe lfi sqli","REQUEST.__wysiwyg=%5C%22%3E%3Cscript%3Eeval%28window.name%29%3C%2Fscript%3E GET.__wysiwyg=%5C%22%3E%3Cscript%3Eeval%28window.name%29%3C%2Fscript%3E","%2Fphp-ids.org%2Ftrunk%2Fdocs%2Fexamples%2Fexample.php%3F__wysiwyg%3D%2522%253E%253Cscript%253Eeval%28window.name%29%253C%2Fscript%253E","127.0.0.1" -"local/unknown",2009-06-24T13:00:21+02:00,15,"xss csrf sqli id lfi","REQUEST.__wysiwyg=%3Ca%20href%3D%5C%22http%3A%2F%2Fwww.foo.de%2F%3Fbar%5C%22%3Efoobar%3C%2Fa%3E GET.__wysiwyg=%3Ca%20href%3D%5C%22http%3A%2F%2Fwww.foo.de%2F%3Fbar%5C%22%3Efoobar%3C%2Fa%3E","%2Fphp-ids.org%2Ftrunk%2Fdocs%2Fexamples%2Fexample.php%3F__wysiwyg%3D%253Ca%2520href%3D%2522http%3A%2F%2Fwww.foo.de%2F%3Fbar%2522%253Efoobar%253C%2Fa%253E","127.0.0.1" -"local/unknown",2009-06-24T13:00:27+02:00,15,"xss csrf sqli id lfi","REQUEST.__wysiwygx=%3Ca%20href%3D%5C%22http%3A%2F%2Fwww.foo.de%2F%3Fbar%5C%22%3Efoobar%3C%2Fa%3E GET.__wysiwygx=%3Ca%20href%3D%5C%22http%3A%2F%2Fwww.foo.de%2F%3Fbar%5C%22%3Efoobar%3C%2Fa%3E","%2Fphp-ids.org%2Ftrunk%2Fdocs%2Fexamples%2Fexample.php%3F__wysiwygx%3D%253Ca%2520href%3D%2522http%3A%2F%2Fwww.foo.de%2F%3Fbar%2522%253Efoobar%253C%2Fa%253E","127.0.0.1" -"local/unknown",2009-06-24T13:00:31+02:00,15,"xss csrf sqli id lfi","REQUEST.__wysiwyg=%3Ca%20href%3D%5C%22http%3A%2F%2Fwww.foo.de%2F%3Fbar%5C%22%3Efoobar%3C%2Fa%3E GET.__wysiwyg=%3Ca%20href%3D%5C%22http%3A%2F%2Fwww.foo.de%2F%3Fbar%5C%22%3Efoobar%3C%2Fa%3E","%2Fphp-ids.org%2Ftrunk%2Fdocs%2Fexamples%2Fexample.php%3F__wysiwyg%3D%253Ca%2520href%3D%2522http%3A%2F%2Fwww.foo.de%2F%3Fbar%2522%253Efoobar%253C%2Fa%253E","127.0.0.1" -"local/unknown",2009-06-24T13:01:48+02:00,15,"xss csrf sqli id lfi","REQUEST.__wysiwyg=%3Ca%20href%3D%5C%22http%3A%2F%2Fwww.foo.de%2F%3Fbar%5C%22%3Efoobar%3C%2Fa%3E GET.__wysiwyg=%3Ca%20href%3D%5C%22http%3A%2F%2Fwww.foo.de%2F%3Fbar%5C%22%3Efoobar%3C%2Fa%3E","%2Fphp-ids.org%2Ftrunk%2Fdocs%2Fexamples%2Fexample.php%3F__wysiwyg%3D%253Ca%2520href%3D%2522http%3A%2F%2Fwww.foo.de%2F%3Fbar%2522%253Efoobar%253C%2Fa%253E","127.0.0.1" -"local/unknown",2009-06-24T13:01:49+02:00,15,"xss csrf sqli id lfi","REQUEST.__wysiwyg=%3Ca%20href%3D%5C%22http%3A%2F%2Fwww.foo.de%2F%3Fbar%5C%22%3Efoobar%3C%2Fa%3E GET.__wysiwyg=%3Ca%20href%3D%5C%22http%3A%2F%2Fwww.foo.de%2F%3Fbar%5C%22%3Efoobar%3C%2Fa%3E","%2Fphp-ids.org%2Ftrunk%2Fdocs%2Fexamples%2Fexample.php%3F__wysiwyg%3D%253Ca%2520href%3D%2522http%3A%2F%2Fwww.foo.de%2F%3Fbar%2522%253Efoobar%253C%2Fa%253E","127.0.0.1" -"local/unknown",2009-06-24T13:01:51+02:00,15,"xss csrf sqli id lfi","REQUEST.__wysiwyg=%3Ca%20href%3D%5C%22http%3A%2F%2Fwww.foo.de%2F%3Fbar%5C%22%3Efoobar%3C%2Fa%3E GET.__wysiwyg=%3Ca%20href%3D%5C%22http%3A%2F%2Fwww.foo.de%2F%3Fbar%5C%22%3Efoobar%3C%2Fa%3E","%2Fphp-ids.org%2Ftrunk%2Fdocs%2Fexamples%2Fexample.php%3F__wysiwyg%3D%253Ca%2520href%3D%2522http%3A%2F%2Fwww.foo.de%2F%3Fbar%2522%253Efoobar%253C%2Fa%253E","127.0.0.1" -"local/unknown",2009-06-24T13:04:46+02:00,15,"xss csrf sqli id lfi","REQUEST.__wysiwyg=%3Ca%20href%3D%5C%22http%3A%2F%2Fwww.foo.de%2F%3Fbar%5C%22%3Efoobar%3C%2Fa%3E","%2Fphp-ids.org%2Ftrunk%2Fdocs%2Fexamples%2Fexample.php%3F__wysiwyg%3D%253Ca%2520href%3D%2522http%3A%2F%2Fwww.foo.de%2F%3Fbar%2522%253Efoobar%253C%2Fa%253E","127.0.0.1" -"local/unknown",2009-06-24T13:05:48+02:00,15,"xss csrf sqli id lfi","REQUEST.__wysiwyg=%3Ca%20href%3D%5C%22http%3A%2F%2Fwww.foo.de%2F%3Fbar%5C%22%3Efoobar%3C%2Fa%3E GET.__wysiwyg=%3Ca%20href%3D%5C%22http%3A%2F%2Fwww.foo.de%2F%3Fbar%5C%22%3Efoobar%3C%2Fa%3E","%2Fphp-ids.org%2Ftrunk%2Fdocs%2Fexamples%2Fexample.php%3F__wysiwyg%3D%253Ca%2520href%3D%2522http%3A%2F%2Fwww.foo.de%2F%3Fbar%2522%253Efoobar%253C%2Fa%253E","127.0.0.1" -"%3A%3A1",2014-11-14T21:41:41+01:00,72,"xss csrf id rfe lfi sqli","REQUEST.test%3D%2522%253E%253Cscript%253Eeval%2528window.name%2529%253C%252Fscript%253E+GET.test%3D%2522%253E%253Cscript%253Eeval%2528window.name%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fphpids%2Fdocs%2Fexamples%2Fexample.php%3Ftest%3D%2522%253E%253Cscript%253Eeval%28window.name%29%253C%2Fscript%253E","::1" -"%3A%3A1",2014-11-14T21:41:58+01:00,12,"sqli id lfi","REQUEST.test%3D1%2527+GET.test%3D1%2527","%2Fczar%2Fplayground%2Fphpids%2Fdocs%2Fexamples%2Fexample.php%3Ftest%3D1%2527","::1" -"%3A%3A1",2014-11-14T21:51:04+01:00,72,"xss csrf id rfe lfi sqli","REQUEST.test%3D%2522%253E%253Cscript%253Eeval%2528window.name%2529%253C%252Fscript%253E+GET.test%3D%2522%253E%253Cscript%253Eeval%2528window.name%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2F%3Ftest%3D%2522%253E%253Cscript%253Eeval%28window.name%29%253C%2Fscript%253E","::1" -"%3A%3A1",2014-11-14T21:51:13+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-14T21:51:39+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-14T21:51:56+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-14T21:52:06+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-14T21:53:03+01:00,42,"xss csrf id rfe lfi","REQUEST.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E+GET.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-14T21:53:11+01:00,42,"xss csrf id rfe lfi","REQUEST.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E+GET.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-14T21:54:16+01:00,42,"xss csrf id rfe lfi","REQUEST.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E+GET.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-14T21:54:17+01:00,42,"xss csrf id rfe lfi","REQUEST.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E+GET.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-14T21:55:13+01:00,42,"xss csrf id rfe lfi","REQUEST.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E+GET.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-14T21:55:25+01:00,42,"xss csrf id rfe lfi","REQUEST.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E+GET.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-15T13:42:51+01:00,16,"xss csrf id rfe","REQUEST.id%3Dalert%2528%2529+GET.id%3Dalert%2528%2529","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3Dalert%2528%2529%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-15T13:45:45+01:00,10,"Command Execution id","REQUEST.id%3Dping%2520-n%25203%2520localhost+GET.id%3Dping%2520-n%25203%2520localhost","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3Dping%2B-n%2B3%2Blocalhost%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-15T13:46:48+01:00,10,"Command Execution id","REQUEST.chootid%3Dping%2520-n%25203%2520localhost+GET.chootid%3Dping%2520-n%25203%2520localhost","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3Dhi%26Submit%3DSubmit%26chootid%3Dping%2B-n%2B3%2Blocalhost","::1" -"%3A%3A1",2014-11-15T13:47:38+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-15T13:48:05+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-15T13:55:09+01:00,86,"xss csrf id rfe sqli lfi","REQUEST.name%3D%2527%2527%253B%2521--%2522%253CXSS%253E%253D%2526%257B%2528%2529%257D+GET.name%3D%2527%2527%253B%2521--%2522%253CXSS%253E%253D%2526%257B%2528%2529%257D","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D%2527%2527%253B%2521--%2522%253CXSS%253E%253D%2526%257B%2528%2529%257D","::1" -"%3A%3A1",2014-11-15T13:55:38+01:00,70,"xss csrf id rfe lfi","REQUEST.name%3D%253CIMG%2520SRC%253Djavascript%253Aalert%2528%2527XSS%2527%2529%253E+GET.name%3D%253CIMG%2520SRC%253Djavascript%253Aalert%2528%2527XSS%2527%2529%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D%253CIMG%2BSRC%253Djavascript%253Aalert%2528%2527XSS%2527%2529%253E","::1" -"%3A%3A1",2014-11-15T13:55:45+01:00,70,"xss csrf id rfe lfi","REQUEST.name%3D%253CIMG%2520SRC%253Djavascript%253Aalert%2528%2522XSS%2522%2529%253E+GET.name%3D%253CIMG%2520SRC%253Djavascript%253Aalert%2528%2522XSS%2522%2529%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D%253CIMG%2BSRC%253Djavascript%253Aalert%2528%2522XSS%2522%2529%253E","::1" -"%3A%3A1",2014-11-15T13:56:01+01:00,88,"xss csrf id rfe lfi","REQUEST.name%3D%253CIMG%2520SRC%253Djavascript%253Aalert%2528String.fromCharCode%252888%252C83%252C83%2529%2529%253E+GET.name%3D%253CIMG%2520SRC%253Djavascript%253Aalert%2528String.fromCharCode%252888%252C83%252C83%2529%2529%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D%253CIMG%2BSRC%253Djavascript%253Aalert%2528String.fromCharCode%252888%252C83%252C83%2529%2529%253E","::1" -"%3A%3A1",2014-11-15T13:56:12+01:00,18,"xss csrf id rfe lfi","REQUEST.name%3D%253CIMG%2520SRC%253D%2526%25230000106%2526%25230000097%2526%25230000118%2526%25230000097%2526%25230000115%2526%25230000099%2526%25230000114%2526%25230000105%2526%25230000112%2526%25230000116%2526%25230000058%2526%25230000097%2526%2520%25230000108%2526%25230000101%2526%25230000114%2526%25230000116%2526%25230000040%2526%25230000039%2526%25230000088%2526%25230000083%2526%25230000083%2526%25230000039%2526%25230000041%253E+GET.name%3D%253CIMG%2520SRC%253D%2526%25230000106%2526%25230000097%2526%25230000118%2526%25230000097%2526%25230000115%2526%25230000099%2526%25230000114%2526%25230000105%2526%25230000112%2526%25230000116%2526%25230000058%2526%25230000097%2526%2520%25230000108%2526%25230000101%2526%25230000114%2526%25230000116%2526%25230000040%2526%25230000039%2526%25230000088%2526%25230000083%2526%25230000083%2526%25230000039%2526%25230000041%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D%253CIMG%2BSRC%253D%2526%25230000106%2526%25230000097%2526%25230000118%2526%25230000097%2526%25230000115%2526%25230000099%2526%25230000114%2526%25230000105%2526%25230000112%2526%25230000116%2526%25230000058%2526%25230000097%2526%2B%25230000108%2526%25230000101%2526%25230000114%2526%25230000116%2526%25230000040%2526%25230000039%2526%25230000088%2526%25230000083%2526%25230000083%2526%25230000039%2526%25230000041%253E","::1" -"%3A%3A1",2014-11-16T18:11:58+01:00,12,"sqli id lfi","REQUEST.name%3D1%2527+GET.name%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-11-16T18:13:49+01:00,12,"sqli id lfi","REQUEST.name%3D1%2527+GET.name%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-11-16T18:16:01+01:00,12,"sqli id lfi","REQUEST.name%3D1%2527+GET.name%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-11-16T18:16:03+01:00,12,"sqli id lfi","REQUEST.name%3D1%2527+GET.name%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-11-16T18:16:10+01:00,12,"sqli id lfi","REQUEST.name%3D1%2527+GET.name%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-11-16T18:23:22+01:00,12,"sqli id lfi","REQUEST.name%3D1%2527+GET.name%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-11-16T18:23:23+01:00,12,"sqli id lfi","REQUEST.name%3D1%2527+GET.name%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-11-16T18:23:24+01:00,12,"sqli id lfi","REQUEST.name%3D1%2527+GET.name%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-11-16T18:38:09+01:00,12,"sqli id lfi","REQUEST.name%3D1%2527+GET.name%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-11-16T18:38:56+01:00,12,"sqli id lfi","REQUEST.name%3D1%2527+GET.name%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-11-16T18:38:57+01:00,12,"sqli id lfi","REQUEST.name%3D1%2527+GET.name%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-11-16T18:39:04+01:00,12,"sqli id lfi","REQUEST.name%3D1%2527+GET.name%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-11-22T10:43:21+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T11:44:54+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T11:53:26+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T11:53:36+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T11:53:45+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T11:53:51+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T11:54:07+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T11:54:10+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T11:54:12+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T11:57:49+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T11:57:51+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T11:59:49+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T12:00:01+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T12:00:17+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T12:02:06+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T12:02:07+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T12:57:45+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T12:57:47+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T12:57:59+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T12:58:18+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T12:58:22+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T12:59:17+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T12:59:20+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T12:59:21+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T12:59:22+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T12:59:51+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T12:59:54+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T12:59:59+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:00:28+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:00:30+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:00:45+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:01:36+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:02:01+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:02:09+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:02:19+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:02:27+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:02:44+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:02:45+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:02:45+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:02:46+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:02:48+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:02:50+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:03:44+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:03:50+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:04:12+01:00,6,"sqli id lfi","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:04:16+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:04:44+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:05:46+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:07:22+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:07:24+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:07:26+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:10:27+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:11:01+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:11:02+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:11:39+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:13:12+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:14:22+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:14:55+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:15:29+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:15:51+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:18:21+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:18:23+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:18:24+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:18:25+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:18:26+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:18:27+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:19:15+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:19:27+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:19:33+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:19:46+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:20:02+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:20:57+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:21:04+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:21:22+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:21:48+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:23:08+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:24:21+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:24:56+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:25:01+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:25:03+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:30:36+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:47:22+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T13:47:45+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T14:36:25+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T14:37:19+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T14:37:26+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T14:38:26+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T14:42:13+01:00,24,"sqli id lfi","REQUEST.username%3D1%2527+REQUEST.password%3D1%2527+GET.username%3D1%2527+GET.password%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fbrute%2F%3Fusername%3D1%2527%26password%3D1%2527%26Login%3DLogin","::1" -"%3A%3A1",2014-11-23T14:42:39+01:00,24,"sqli id lfi","REQUEST.username%3D1%2527+REQUEST.password%3D1%2527+GET.username%3D1%2527+GET.password%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fbrute%2F%3Fusername%3D1%2527%26password%3D1%2527%26Login%3DLogin","::1" -"%3A%3A1",2014-11-23T14:47:23+01:00,24,"sqli id lfi","REQUEST.username%3D1%2527+REQUEST.password%3D1%2527+GET.username%3D1%2527+GET.password%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fbrute%2F%3Fusername%3D1%2527%26password%3D1%2527%26Login%3DLogin","::1" -"%3A%3A1",2014-11-23T14:51:48+01:00,24,"sqli id lfi","REQUEST.username%3D1%2527+REQUEST.password%3D1%2527+GET.username%3D1%2527+GET.password%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fbrute%2F%3Fusername%3D1%2527%26password%3D1%2527%26Login%3DLogin","::1" -"%3A%3A1",2014-11-23T14:56:02+01:00,24,"sqli id lfi","REQUEST.username%3D1%2527+REQUEST.password%3D1%2527+GET.username%3D1%2527+GET.password%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fbrute%2F%3Fusername%3D1%2527%26password%3D1%2527%26Login%3DLogin","::1" -"%3A%3A1",2014-11-23T15:44:39+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T15:55:55+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T16:07:00+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T16:11:41+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T16:13:40+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T16:14:38+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T16:15:06+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T16:19:52+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-23T16:24:22+01:00,6,"xss csrf id","REQUEST.id%3D%25201%253D1--+GET.id%3D%25201%253D1--","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%2B1%253D1--%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-24T05:30:10+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-24T05:30:14+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-24T05:30:14+01:00,12,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-24T12:43:21+01:00,12,"sqli id lfi","REQUEST.name%3D1%2527+GET.name%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-11-24T20:00:16+01:00,30,"sqli id lfi","REQUEST.name%3D1%2527+GET.name%3D1%2527+COOKIE.ci_session%3Da%253A5%253A%257Bs%253A10%253A%2522session_id%2522%253Bs%253A32%253A%25226676b3b07a4d838d925143494b678f00%2522%253Bs%253A10%253A%2522ip_address%2522%253Bs%253A3%253A%2522%253A%253A1%2522%253Bs%253A10%253A%2522user_agent%2522%253Bs%253A113%253A%2522Mozilla%252F5.0%2520%2528Windows%2520NT%25206.1%253B%2520Win64%253B%2520x64%2529%2520AppleWebKit%252F537.36%2520%2528KHTML%252C%2520like%2520Gecko%2529%2520Chrome%252F39.0.2171.65%2520Safari%252F537.36%2522%253Bs%253A13%253A%2522last_activity%2522%253Bi%253A1416854864%253Bs%253A9%253A%2522user_data%2522%253Bs%253A0%253A%2522%2522%253B%257D8ca15a722b54589b619b94c750442da596d29f1f","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-11-24T20:00:50+01:00,30,"sqli id lfi","REQUEST.name%3D1%2527+GET.name%3D1%2527+COOKIE.ci_session%3Da%253A5%253A%257Bs%253A10%253A%2522session_id%2522%253Bs%253A32%253A%25226676b3b07a4d838d925143494b678f00%2522%253Bs%253A10%253A%2522ip_address%2522%253Bs%253A3%253A%2522%253A%253A1%2522%253Bs%253A10%253A%2522user_agent%2522%253Bs%253A113%253A%2522Mozilla%252F5.0%2520%2528Windows%2520NT%25206.1%253B%2520Win64%253B%2520x64%2529%2520AppleWebKit%252F537.36%2520%2528KHTML%252C%2520like%2520Gecko%2529%2520Chrome%252F39.0.2171.65%2520Safari%252F537.36%2522%253Bs%253A13%253A%2522last_activity%2522%253Bi%253A1416854864%253Bs%253A9%253A%2522user_data%2522%253Bs%253A0%253A%2522%2522%253B%257D8ca15a722b54589b619b94c750442da596d29f1f","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-11-24T20:02:59+01:00,30,"sqli id lfi","REQUEST.name%3D1%2527+GET.name%3D1%2527+COOKIE.ci_session%3Da%253A5%253A%257Bs%253A10%253A%2522session_id%2522%253Bs%253A32%253A%25226676b3b07a4d838d925143494b678f00%2522%253Bs%253A10%253A%2522ip_address%2522%253Bs%253A3%253A%2522%253A%253A1%2522%253Bs%253A10%253A%2522user_agent%2522%253Bs%253A113%253A%2522Mozilla%252F5.0%2520%2528Windows%2520NT%25206.1%253B%2520Win64%253B%2520x64%2529%2520AppleWebKit%252F537.36%2520%2528KHTML%252C%2520like%2520Gecko%2529%2520Chrome%252F39.0.2171.65%2520Safari%252F537.36%2522%253Bs%253A13%253A%2522last_activity%2522%253Bi%253A1416854864%253Bs%253A9%253A%2522user_data%2522%253Bs%253A0%253A%2522%2522%253B%257D8ca15a722b54589b619b94c750442da596d29f1f","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-11-24T20:26:01+01:00,30,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527+COOKIE.ci_session%3Da%253A5%253A%257Bs%253A10%253A%2522session_id%2522%253Bs%253A32%253A%25226676b3b07a4d838d925143494b678f00%2522%253Bs%253A10%253A%2522ip_address%2522%253Bs%253A3%253A%2522%253A%253A1%2522%253Bs%253A10%253A%2522user_agent%2522%253Bs%253A113%253A%2522Mozilla%252F5.0%2520%2528Windows%2520NT%25206.1%253B%2520Win64%253B%2520x64%2529%2520AppleWebKit%252F537.36%2520%2528KHTML%252C%2520like%2520Gecko%2529%2520Chrome%252F39.0.2171.65%2520Safari%252F537.36%2522%253Bs%253A13%253A%2522last_activity%2522%253Bi%253A1416854864%253Bs%253A9%253A%2522user_data%2522%253Bs%253A0%253A%2522%2522%253B%257D8ca15a722b54589b619b94c750442da596d29f1f","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-24T20:27:29+01:00,30,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527+COOKIE.ci_session%3Da%253A5%253A%257Bs%253A10%253A%2522session_id%2522%253Bs%253A32%253A%25226676b3b07a4d838d925143494b678f00%2522%253Bs%253A10%253A%2522ip_address%2522%253Bs%253A3%253A%2522%253A%253A1%2522%253Bs%253A10%253A%2522user_agent%2522%253Bs%253A113%253A%2522Mozilla%252F5.0%2520%2528Windows%2520NT%25206.1%253B%2520Win64%253B%2520x64%2529%2520AppleWebKit%252F537.36%2520%2528KHTML%252C%2520like%2520Gecko%2529%2520Chrome%252F39.0.2171.65%2520Safari%252F537.36%2522%253Bs%253A13%253A%2522last_activity%2522%253Bi%253A1416854864%253Bs%253A9%253A%2522user_data%2522%253Bs%253A0%253A%2522%2522%253B%257D8ca15a722b54589b619b94c750442da596d29f1f","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-24T20:27:41+01:00,30,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527+COOKIE.ci_session%3Da%253A5%253A%257Bs%253A10%253A%2522session_id%2522%253Bs%253A32%253A%25226676b3b07a4d838d925143494b678f00%2522%253Bs%253A10%253A%2522ip_address%2522%253Bs%253A3%253A%2522%253A%253A1%2522%253Bs%253A10%253A%2522user_agent%2522%253Bs%253A113%253A%2522Mozilla%252F5.0%2520%2528Windows%2520NT%25206.1%253B%2520Win64%253B%2520x64%2529%2520AppleWebKit%252F537.36%2520%2528KHTML%252C%2520like%2520Gecko%2529%2520Chrome%252F39.0.2171.65%2520Safari%252F537.36%2522%253Bs%253A13%253A%2522last_activity%2522%253Bi%253A1416854864%253Bs%253A9%253A%2522user_data%2522%253Bs%253A0%253A%2522%2522%253B%257D8ca15a722b54589b619b94c750442da596d29f1f","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-11-24T20:27:46+01:00,18,"sqli id lfi","REQUEST.id%3D1%2527+GET.id%3D1%2527+COOKIE.ci_session%3Da%253A5%253A%257Bs%253A10%253A%2522session_id%2522%253Bs%253A32%253A%25226676b3b07a4d838d925143494b678f00%2522%253Bs%253A10%253A%2522ip_address%2522%253Bs%253A3%253A%2522%253A%253A1%2522%253Bs%253A10%253A%2522user_agent%2522%253Bs%253A113%253A%2522Mozilla%252F5.0%2520%2528Windows%2520NT%25206.1%253B%2520Win64%253B%2520x64%2529%2520AppleWebKit%252F537.36%2520%2528KHTML%252C%2520like%2520Gecko%2529%2520Chrome%252F39.0.2171.65%2520Safari%252F537.36%2522%253Bs%253A13%253A%2522last_activity%2522%253Bi%253A1416854864%253Bs%253A9%253A%2522user_data%2522%253Bs%253A0%253A%2522%2522%253B%257D8ca15a722b54589b619b94c750442da596d29f1f","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-12-02T11:19:57+01:00,18,"sqli id lfi","COOKIE.ci_session%3Da%253A10%253A%257Bs%253A10%253A%2522session_id%2522%253Bs%253A32%253A%2522a34d080e23eb0a1bf4e6f9a52d36a125%2522%253Bs%253A10%253A%2522ip_address%2522%253Bs%253A3%253A%2522%253A%253A1%2522%253Bs%253A10%253A%2522user_agent%2522%253Bs%253A113%253A%2522Mozilla%252F5.0%2520%2528Windows%2520NT%25206.1%253B%2520Win64%253B%2520x64%2529%2520AppleWebKit%252F537.36%2520%2528KHTML%252C%2520like%2520Gecko%2529%2520Chrome%252F39.0.2171.71%2520Safari%252F537.36%2522%253Bs%253A13%253A%2522last_activity%2522%253Bi%253A1417514309%253Bs%253A9%253A%2522user_data%2522%253Bs%253A0%253A%2522%2522%253Bs%253A8%253A%2522identity%2522%253Bs%253A15%253A%2522admin%2540admin.com%2522%253Bs%253A8%253A%2522username%2522%253Bs%253A13%253A%2522administrator%2522%253Bs%253A5%253A%2522email%2522%253Bs%253A15%253A%2522admin%2540admin.com%2522%253Bs%253A7%253A%2522user_id%2522%253Bs%253A1%253A%25221%2522%253Bs%253A14%253A%2522old_last_login%2522%253Bs%253A10%253A%25221417329311%2522%253B%257D5b27f6a690947255067006681e74cad507ad69a3","%2Fczar%2Fplayground%2Fdvwa%2Flogin.php","::1" -"%3A%3A1",2014-12-02T11:20:58+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-12-02T11:21:25+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-12-02T11:21:41+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2014-12-09T10:22:27+01:00,0,"","REQUEST.name%3D1%2527+GET.name%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-12-09T10:34:03+01:00,0,"","REQUEST.name%3D1%2527+GET.name%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-12-09T19:03:29+01:00,0,"","REQUEST.name%3D1%2527+GET.name%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-12-09T19:14:48+01:00,0,"","REQUEST.name%3D1%2527+GET.name%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-12-09T19:50:58+01:00,0,"","REQUEST.name%3D1%2527+GET.name%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-12-09T21:22:30+01:00,40,"sqli id lfi","REQUEST.name%3DSELECT%2520column_name%2528s%2529%2520FROM%2520table1%2520UNION%2520ALL%2520SELECT%2520column_name%2528s%2529%2520FROM%2520table2%253B+GET.name%3DSELECT%2520column_name%2528s%2529%2520FROM%2520table1%2520UNION%2520ALL%2520SELECT%2520column_name%2528s%2529%2520FROM%2520table2%253B","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3DSELECT%2Bcolumn_name%2528s%2529%2BFROM%2Btable1%2BUNION%2BALL%2BSELECT%2Bcolumn_name%2528s%2529%2BFROM%2Btable2%253B","::1" -"%3A%3A1",2014-12-09T22:31:15+01:00,40,"sqli id lfi","REQUEST.name%3DSELECT%2520column_name%2528s%2529%2520FROM%2520table1%2520UNION%2520ALL%2520SELECT%2520column_name%2528s%2529%2520FROM%2520table2%253B+GET.name%3DSELECT%2520column_name%2528s%2529%2520FROM%2520table1%2520UNION%2520ALL%2520SELECT%2520column_name%2528s%2529%2520FROM%2520table2%253B","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3DSELECT%2Bcolumn_name%2528s%2529%2BFROM%2Btable1%2BUNION%2BALL%2BSELECT%2Bcolumn_name%2528s%2529%2BFROM%2Btable2%253B","::1" -"%3A%3A1",2014-12-12T18:14:53+01:00,0,"","REQUEST.name%3D1%2527+GET.name%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-12-13T12:00:33+01:00,0,"","REQUEST.name%3D1%2527+GET.name%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2014-12-13T16:46:16+01:00,40,"sqli id lfi","REQUEST.name%3DSELECT%2520City%2520FROM%2520Customers%2520UNION%2520ALL%2520SELECT%2520City%2520FROM%2520Suppliers%2520ORDER%2520BY%2520City%253B+GET.name%3DSELECT%2520City%2520FROM%2520Customers%2520UNION%2520ALL%2520SELECT%2520City%2520FROM%2520Suppliers%2520ORDER%2520BY%2520City%253B","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3DSELECT%2BCity%2BFROM%2BCustomers%2BUNION%2BALL%2BSELECT%2BCity%2BFROM%2BSuppliers%2BORDER%2BBY%2BCity%253B","::1" -"%3A%3A1",2014-12-15T10:43:24+01:00,0,"","REQUEST.name%3D1%2527+GET.name%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D1%2527","::1" -"%3A%3A1",2015-01-18T11:20:37+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-01-18T11:26:31+01:00,42,"xss csrf id rfe lfi","REQUEST.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E+GET.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2015-01-18T11:34:37+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-01-18T11:48:51+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:30:23+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:53:27+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:53:30+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:53:32+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:53:33+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:53:33+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:53:34+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:53:34+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:53:34+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:53:35+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:53:35+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:53:35+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:53:35+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:53:35+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:53:36+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:53:36+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:53:54+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:55:03+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:55:09+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:55:10+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:55:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:55:13+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:55:14+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:55:35+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:55:54+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:56:36+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:57:15+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:57:15+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:57:16+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:57:54+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:58:26+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:58:37+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:58:38+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T05:59:58+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:00:03+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:00:04+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:00:04+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:00:20+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:00:38+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:00:39+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:01:06+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:01:36+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:02:14+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:02:15+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:02:16+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:04:26+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:04:37+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:04:38+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:04:38+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:04:38+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:07:10+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:07:13+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:07:23+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:07:24+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:07:24+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:40:44+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:40:44+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:40:45+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:40:45+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:40:45+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:55:04+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:55:48+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:56:04+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:56:09+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:56:10+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:56:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:57:21+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:57:36+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T06:58:00+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T07:53:23+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T07:54:37+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T07:55:03+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T07:55:05+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T07:55:06+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T07:55:06+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:08:07+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:13:40+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:18:26+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:18:37+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:20:51+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:21:53+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:21:58+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:21:58+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:22:05+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:23:15+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:24:13+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:24:13+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:24:21+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:24:22+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:24:23+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:25:09+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:25:14+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:25:15+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:25:15+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:25:16+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:26:41+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:29:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:36:30+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:36:35+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:36:36+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:36:36+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:36:37+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:45:41+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:45:55+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:46:05+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:46:06+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T08:46:07+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:38:53+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:39:05+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:42:42+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:42:48+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:42:52+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:42:56+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:43:00+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:43:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:43:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:43:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:43:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:43:24+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:43:24+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:43:25+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:43:25+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:43:25+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:46:23+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:46:29+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:46:29+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:46:30+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:46:30+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T10:46:46+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T11:58:22+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:10:52+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:14:14+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:17:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:17:12+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:17:20+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:17:21+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:17:21+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:17:21+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:17:22+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:17:36+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:17:37+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:17:37+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:17:37+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:17:37+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:17:47+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:17:56+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:17:56+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:17:56+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:17:57+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:17:57+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:18:15+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:18:16+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:18:17+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:18:18+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:18:18+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:18:24+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:18:24+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:18:25+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:18:25+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:18:25+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:19:38+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:19:40+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:19:42+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:19:43+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:19:43+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:19:49+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:19:50+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:19:51+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:19:51+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:20:30+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:20:30+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:20:31+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:20:31+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:20:32+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:20:40+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:20:41+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:20:53+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:20:54+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:23:28+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:23:36+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:23:44+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:23:46+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:23:47+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:23:53+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:23:54+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:23:54+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:23:54+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:23:55+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:04+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:08+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:12+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:12+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:22+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:23+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:23+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:23+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:24+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:32+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:34+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:35+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:35+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:35+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:44+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:44+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:45+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:45+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:45+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:54+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:54+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:55+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:55+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:24:55+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:28:42+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:34:07+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:34:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:34:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:34:12+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:34:12+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:38:24+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:38:25+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:38:26+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:38:27+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:38:28+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:39:45+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:40:10+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:40:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:40:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:40:12+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:40:12+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:43:16+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:44:01+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:44:02+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:44:03+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:44:03+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:44:04+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:44:44+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:44:57+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:44:57+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:44:58+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:44:59+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:45:00+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:46:08+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:46:10+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:46:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:46:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:46:12+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:46:23+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:46:24+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:46:24+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:46:25+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:46:26+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:46:32+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:46:32+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:46:33+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:46:33+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:46:34+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:46:43+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:46:43+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:46:44+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:46:44+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:46:44+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:50:52+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:50:53+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:50:53+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:50:54+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:50:54+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:51:41+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:51:42+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:51:43+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:51:43+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:51:44+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:51:51+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:51:51+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:51:52+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:51:53+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:51:53+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:52:06+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:52:06+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:52:07+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:52:07+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:52:07+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:52:19+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:52:19+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:52:20+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:52:20+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:52:21+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:52:43+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:52:44+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:52:45+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:52:45+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:52:46+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:52:58+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:52:59+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:53:00+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:55:21+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:55:33+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:55:34+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:55:34+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:55:35+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:55:39+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:56:17+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:56:18+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:56:19+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:56:19+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:56:20+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:56:30+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:56:31+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:56:31+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:56:31+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:56:32+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:56:47+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:56:47+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:56:48+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:56:48+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:56:48+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:57:05+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:57:05+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:57:06+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:57:06+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:57:07+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:57:42+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:57:44+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:57:45+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:57:45+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T12:57:45+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:00:06+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:00:14+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:00:14+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:00:15+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:00:15+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:00:20+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:00:29+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:00:29+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:00:30+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:00:30+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:00:30+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:02:00+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:02:05+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:02:06+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:02:06+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:02:07+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:02:15+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:04:00+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:04:00+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:04:01+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:04:01+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:04:22+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:05:50+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:05:51+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:05:51+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:05:52+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:05:52+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:02+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:03+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:04+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:04+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:05+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:15+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:16+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:16+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:16+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:17+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:25+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:26+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:27+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:27+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:27+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:35+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:35+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:36+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:36+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:36+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:58+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:58+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:59+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:59+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:06:59+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:07:58+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:07:59+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:07:59+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:07:59+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:07:59+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:08:10+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:08:10+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:08:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:08:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:08:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:08:20+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:08:20+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:08:21+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:08:21+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:08:21+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:08:36+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:08:36+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:08:37+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:08:37+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:08:38+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:08:59+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:09:00+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:09:01+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:09:01+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:09:01+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:11:32+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:11:33+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:11:35+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:11:35+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:11:36+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:11:47+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:11:48+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:11:48+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:11:48+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:11:49+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:11:58+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:11:59+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:11:59+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:12:00+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:12:00+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:12:08+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:12:08+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:12:08+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:12:09+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:12:09+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:12:17+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:12:18+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:12:18+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:12:19+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:12:19+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:12:39+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:12:40+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:12:40+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:12:41+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:12:41+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:13:27+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:13:28+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:13:28+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:13:28+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:13:28+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:13:40+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:13:40+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:13:41+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:13:41+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:13:41+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:13:49+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:13:49+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:13:50+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:13:50+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:13:50+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:14:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:14:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:14:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:14:11+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:14:12+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:14:28+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:14:29+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:14:29+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:14:29+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:14:30+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:14:46+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:14:47+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:14:47+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:14:47+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:14:47+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:15:46+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:15:46+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:15:46+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:15:47+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:15:47+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:15:56+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:15:57+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:15:57+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:15:57+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:15:58+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:16:10+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:16:21+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:16:21+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:16:21+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:16:21+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:16:39+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:16:39+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:16:40+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:16:40+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:16:40+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:16:59+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:16:59+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:17:00+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:17:00+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:17:00+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:17:55+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:17:56+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:17:56+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:17:56+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:17:57+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:18:06+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:18:06+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:18:07+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:18:07+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:18:07+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:18:16+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:18:17+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:18:17+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:18:17+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:18:17+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:18:25+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:18:26+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:18:26+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:18:27+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:18:27+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:18:37+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:18:37+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:18:38+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:18:38+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:18:38+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:19:00+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:19:00+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:19:01+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:19:01+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:19:01+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:19:27+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:19:28+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:19:28+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:19:28+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:19:29+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:19:47+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:19:48+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:19:48+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:19:48+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:19:48+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:20:01+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:20:01+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:20:02+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:20:02+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:20:02+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:20:08+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:20:08+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:20:08+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:20:09+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T13:20:14+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T18:42:13+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T18:43:25+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T18:44:29+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T18:45:26+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T18:45:37+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T18:52:37+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T19:00:03+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T19:00:09+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T19:00:52+01:00,42,"xss csrf id rfe lfi","REQUEST.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E+GET.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T19:48:24+01:00,42,"xss csrf id rfe lfi","REQUEST.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E+GET.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T19:48:47+01:00,42,"xss csrf id rfe lfi","REQUEST.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E+GET.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T21:46:29+01:00,42,"xss csrf id rfe lfi","REQUEST.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E+GET.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-11T21:58:05+01:00,42,"xss csrf id rfe lfi","REQUEST.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E+GET.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-12T05:20:46+01:00,42,"xss csrf id rfe lfi","REQUEST.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E+GET.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-12T05:43:22+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-12T05:43:58+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-12T06:40:28+01:00,20,"dt id lfi","REQUEST.id%3D..%252F..%252F..%252F..%252F..%252Fetc%252Fpassword+GET.id%3D..%252F..%252F..%252F..%252F..%252Fetc%252Fpassword","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D..%252F..%252F..%252F..%252F..%252Fetc%252Fpassword%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-12T17:20:08+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-12T17:20:35+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-12T17:26:45+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-12T17:26:54+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-12T17:27:39+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-13T09:41:22+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-13T09:42:09+01:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-13T14:23:25+01:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-13T14:23:49+01:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-13T14:24:23+01:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-13T18:28:38+01:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-13T18:47:53+01:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-13T20:04:35+01:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-13T20:20:49+01:00,21,"xss csrf id rfe lfi","GET.id%3D%253Cscript%253Ealert%2528%252Fmaagi%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%253Cscript%253Ealert%2528%252Fmaagi%252F%2529%253C%252Fscript%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-14T12:22:05+01:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-14T12:23:17+01:00,21,"xss csrf id rfe lfi","GET.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-14T12:24:02+01:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-14T14:28:36+01:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-14T14:29:51+01:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-14T16:04:46+01:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-14T19:49:05+01:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-24T09:58:24+01:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-24T09:58:59+01:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-24T10:31:10+01:00,21,"xss csrf id rfe lfi","GET.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli_blind%2F%3Fid%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-25T08:49:45+01:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-25T08:49:57+01:00,21,"xss csrf id rfe lfi","GET.id%3D%253Cscript%253Ealert%2528%252Fmaagi%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%253Cscript%253Ealert%2528%252Fmaagi%252F%2529%253C%252Fscript%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-28T12:24:15+01:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-03-31T12:51:22+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T11:51:21+02:00,33,"xss csrf id rfe lfi sqli","GET.id%3D%2527%2522%2528%2529%252526%2525251%253CScRiPt%2520%253Eprompt%2528910003%2529%253C%25252fScRiPt%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%2527%2522%2528%2529%252526%2525251%253CScRiPt%2B%253Eprompt%2528910003%2529%253C%25252fScRiPt%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T15:55:48+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T15:55:50+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T15:55:50+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T15:55:50+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T15:55:50+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T15:55:51+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T15:55:51+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T15:55:51+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T15:55:52+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T15:55:52+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T15:56:02+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T15:56:15+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T15:57:53+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T15:58:37+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T15:58:41+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T15:58:43+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T15:58:46+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T15:58:48+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T15:58:51+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T16:01:22+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T16:01:25+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T16:01:28+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T16:01:29+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T16:01:31+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T19:37:32+02:00,21,"xss csrf id rfe lfi","GET.id%3D%253Cscript%253Ealert%2528%252Fmaagi%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%253Cscript%253Ealert%2528%252Fmaagi%252F%2529%253C%252Fscript%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-03T22:36:53+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-04T06:17:25+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-04T06:17:48+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-04T06:18:17+02:00,0,"","GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-04T06:19:04+02:00,21,"xss csrf id rfe lfi","GET.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-04T06:20:37+02:00,21,"xss csrf id rfe lfi","GET.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-04T06:21:13+02:00,21,"xss csrf id rfe lfi","GET.id%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-07T10:43:08+02:00,36,"xss csrf id rfe lfi sqli","GET.test%3D%2522%253E%253Cscript%253Eeval%2528window.name%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdvwa%2Fsecurity.php%3Ftest%3D%2522%253E%253Cscript%253Eeval%28window.name%29%253C%2Fscript%253E","::1" -"%3A%3A1",2015-04-09T15:58:24+00:00,21,"xss csrf id rfe lfi","GET.hi%3D%253Cscript%253Ealert%2528%252F0%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdemo%2Fwordpress%2F%3Fhi%3D%253Cscript%253Ealert%28%2F0%2F%29%253C%2Fscript%253E","::1" -"%3A%3A1",2015-04-09T16:41:38+00:00,24,"xss csrf id rfe lfi","GET.i%3D%253Cscript%253Ealert%2528%252F0%252F%252F%2529%253C%252Fscript%253E","%2Fczar%2Fplayground%2Fdemo%2Fwordpress%2F%3Fi%3D%253Cscript%253Ealert%28%2F0%2F%2F%29%253C%2Fscript%253E","::1" -"%3A%3A1",2015-04-10T19:19:30+02:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" -"%3A%3A1",2015-04-10T19:19:52+02:00,0,"","REQUEST.id%3D1%2527+GET.id%3D1%2527","%2Fczar%2Fplayground%2Fdvwa%2Fvulnerabilities%2Fsqli%2F%3Fid%3D1%2527%26Submit%3DSubmit","::1" diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier.auto.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier.auto.php deleted file mode 100644 index 1960c39..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier.auto.php +++ /dev/null @@ -1,11 +0,0 @@ -purify($html, $config); -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier.includes.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier.includes.php deleted file mode 100644 index b9baf8f..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier.includes.php +++ /dev/null @@ -1,214 +0,0 @@ - $attributes) { - $allowed_elements[$element] = true; - foreach ($attributes as $attribute => $x) { - $allowed_attributes["$element.$attribute"] = true; - } - } - $config->set('HTML.AllowedElements', $allowed_elements); - $config->set('HTML.AllowedAttributes', $allowed_attributes); - $allowed_schemes = array(); - if ($allowed_protocols !== null) { - $config->set('URI.AllowedSchemes', $allowed_protocols); - } - $purifier = new HTMLPurifier($config); - return $purifier->purify($string); -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier.path.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier.path.php deleted file mode 100644 index 39b1b65..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier.path.php +++ /dev/null @@ -1,11 +0,0 @@ -config = HTMLPurifier_Config::create($config); - - $this->strategy = new HTMLPurifier_Strategy_Core(); - - } - - /** - * Adds a filter to process the output. First come first serve - * @param $filter HTMLPurifier_Filter object - */ - public function addFilter($filter) { - trigger_error('HTMLPurifier->addFilter() is deprecated, use configuration directives in the Filter namespace or Filter.Custom', E_USER_WARNING); - $this->filters[] = $filter; - } - - /** - * Filters an HTML snippet/document to be XSS-free and standards-compliant. - * - * @param $html String of HTML to purify - * @param $config HTMLPurifier_Config object for this operation, if omitted, - * defaults to the config object specified during this - * object's construction. The parameter can also be any type - * that HTMLPurifier_Config::create() supports. - * @return Purified HTML - */ - public function purify($html, $config = null) { - - // :TODO: make the config merge in, instead of replace - $config = $config ? HTMLPurifier_Config::create($config) : $this->config; - - // implementation is partially environment dependant, partially - // configuration dependant - $lexer = HTMLPurifier_Lexer::create($config); - - $context = new HTMLPurifier_Context(); - - // setup HTML generator - $this->generator = new HTMLPurifier_Generator($config, $context); - $context->register('Generator', $this->generator); - - // set up global context variables - if ($config->get('Core.CollectErrors')) { - // may get moved out if other facilities use it - $language_factory = HTMLPurifier_LanguageFactory::instance(); - $language = $language_factory->create($config, $context); - $context->register('Locale', $language); - - $error_collector = new HTMLPurifier_ErrorCollector($context); - $context->register('ErrorCollector', $error_collector); - } - - // setup id_accumulator context, necessary due to the fact that - // AttrValidator can be called from many places - $id_accumulator = HTMLPurifier_IDAccumulator::build($config, $context); - $context->register('IDAccumulator', $id_accumulator); - - $html = HTMLPurifier_Encoder::convertToUTF8($html, $config, $context); - - // setup filters - $filter_flags = $config->getBatch('Filter'); - $custom_filters = $filter_flags['Custom']; - unset($filter_flags['Custom']); - $filters = array(); - foreach ($filter_flags as $filter => $flag) { - if (!$flag) continue; - if (strpos($filter, '.') !== false) continue; - $class = "HTMLPurifier_Filter_$filter"; - $filters[] = new $class; - } - foreach ($custom_filters as $filter) { - // maybe "HTMLPurifier_Filter_$filter", but be consistent with AutoFormat - $filters[] = $filter; - } - $filters = array_merge($filters, $this->filters); - // maybe prepare(), but later - - for ($i = 0, $filter_size = count($filters); $i < $filter_size; $i++) { - $html = $filters[$i]->preFilter($html, $config, $context); - } - - // purified HTML - $html = - $this->generator->generateFromTokens( - // list of tokens - $this->strategy->execute( - // list of un-purified tokens - $lexer->tokenizeHTML( - // un-purified HTML - $html, $config, $context - ), - $config, $context - ) - ); - - for ($i = $filter_size - 1; $i >= 0; $i--) { - $html = $filters[$i]->postFilter($html, $config, $context); - } - - $html = HTMLPurifier_Encoder::convertFromUTF8($html, $config, $context); - $this->context =& $context; - return $html; - } - - /** - * Filters an array of HTML snippets - * @param $config Optional HTMLPurifier_Config object for this operation. - * See HTMLPurifier::purify() for more details. - * @return Array of purified HTML - */ - public function purifyArray($array_of_html, $config = null) { - $context_array = array(); - foreach ($array_of_html as $key => $html) { - $array_of_html[$key] = $this->purify($html, $config); - $context_array[$key] = $this->context; - } - $this->context = $context_array; - return $array_of_html; - } - - /** - * Singleton for enforcing just one HTML Purifier in your system - * @param $prototype Optional prototype HTMLPurifier instance to - * overload singleton with, or HTMLPurifier_Config - * instance to configure the generated version with. - */ - public static function instance($prototype = null) { - if (!self::$instance || $prototype) { - if ($prototype instanceof HTMLPurifier) { - self::$instance = $prototype; - } elseif ($prototype) { - self::$instance = new HTMLPurifier($prototype); - } else { - self::$instance = new HTMLPurifier(); - } - } - return self::$instance; - } - - /** - * @note Backwards compatibility, see instance() - */ - public static function getInstance($prototype = null) { - return HTMLPurifier::instance($prototype); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier.safe-includes.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier.safe-includes.php deleted file mode 100644 index a5c0d5b..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier.safe-includes.php +++ /dev/null @@ -1,208 +0,0 @@ -attr_collections as $coll_i => $coll) { - if (!isset($this->info[$coll_i])) { - $this->info[$coll_i] = array(); - } - foreach ($coll as $attr_i => $attr) { - if ($attr_i === 0 && isset($this->info[$coll_i][$attr_i])) { - // merge in includes - $this->info[$coll_i][$attr_i] = array_merge( - $this->info[$coll_i][$attr_i], $attr); - continue; - } - $this->info[$coll_i][$attr_i] = $attr; - } - } - } - // perform internal expansions and inclusions - foreach ($this->info as $name => $attr) { - // merge attribute collections that include others - $this->performInclusions($this->info[$name]); - // replace string identifiers with actual attribute objects - $this->expandIdentifiers($this->info[$name], $attr_types); - } - } - - /** - * Takes a reference to an attribute associative array and performs - * all inclusions specified by the zero index. - * @param &$attr Reference to attribute array - */ - public function performInclusions(&$attr) { - if (!isset($attr[0])) return; - $merge = $attr[0]; - $seen = array(); // recursion guard - // loop through all the inclusions - for ($i = 0; isset($merge[$i]); $i++) { - if (isset($seen[$merge[$i]])) continue; - $seen[$merge[$i]] = true; - // foreach attribute of the inclusion, copy it over - if (!isset($this->info[$merge[$i]])) continue; - foreach ($this->info[$merge[$i]] as $key => $value) { - if (isset($attr[$key])) continue; // also catches more inclusions - $attr[$key] = $value; - } - if (isset($this->info[$merge[$i]][0])) { - // recursion - $merge = array_merge($merge, $this->info[$merge[$i]][0]); - } - } - unset($attr[0]); - } - - /** - * Expands all string identifiers in an attribute array by replacing - * them with the appropriate values inside HTMLPurifier_AttrTypes - * @param &$attr Reference to attribute array - * @param $attr_types HTMLPurifier_AttrTypes instance - */ - public function expandIdentifiers(&$attr, $attr_types) { - - // because foreach will process new elements we add, make sure we - // skip duplicates - $processed = array(); - - foreach ($attr as $def_i => $def) { - // skip inclusions - if ($def_i === 0) continue; - - if (isset($processed[$def_i])) continue; - - // determine whether or not attribute is required - if ($required = (strpos($def_i, '*') !== false)) { - // rename the definition - unset($attr[$def_i]); - $def_i = trim($def_i, '*'); - $attr[$def_i] = $def; - } - - $processed[$def_i] = true; - - // if we've already got a literal object, move on - if (is_object($def)) { - // preserve previous required - $attr[$def_i]->required = ($required || $attr[$def_i]->required); - continue; - } - - if ($def === false) { - unset($attr[$def_i]); - continue; - } - - if ($t = $attr_types->get($def)) { - $attr[$def_i] = $t; - $attr[$def_i]->required = $required; - } else { - unset($attr[$def_i]); - } - } - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef.php deleted file mode 100644 index b2e4f36..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef.php +++ /dev/null @@ -1,123 +0,0 @@ - by removing - * leading and trailing whitespace, ignoring line feeds, and replacing - * carriage returns and tabs with spaces. While most useful for HTML - * attributes specified as CDATA, it can also be applied to most CSS - * values. - * - * @note This method is not entirely standards compliant, as trim() removes - * more types of whitespace than specified in the spec. In practice, - * this is rarely a problem, as those extra characters usually have - * already been removed by HTMLPurifier_Encoder. - * - * @warning This processing is inconsistent with XML's whitespace handling - * as specified by section 3.3.3 and referenced XHTML 1.0 section - * 4.7. However, note that we are NOT necessarily - * parsing XML, thus, this behavior may still be correct. We - * assume that newlines have been normalized. - */ - public function parseCDATA($string) { - $string = trim($string); - $string = str_replace(array("\n", "\t", "\r"), ' ', $string); - return $string; - } - - /** - * Factory method for creating this class from a string. - * @param $string String construction info - * @return Created AttrDef object corresponding to $string - */ - public function make($string) { - // default implementation, return a flyweight of this object. - // If $string has an effect on the returned object (i.e. you - // need to overload this method), it is best - // to clone or instantiate new copies. (Instantiation is safer.) - return $this; - } - - /** - * Removes spaces from rgb(0, 0, 0) so that shorthand CSS properties work - * properly. THIS IS A HACK! - */ - protected function mungeRgb($string) { - return preg_replace('/rgb\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)\)/', 'rgb(\1,\2,\3)', $string); - } - - /** - * Parses a possibly escaped CSS string and returns the "pure" - * version of it. - */ - protected function expandCSSEscape($string) { - // flexibly parse it - $ret = ''; - for ($i = 0, $c = strlen($string); $i < $c; $i++) { - if ($string[$i] === '\\') { - $i++; - if ($i >= $c) { - $ret .= '\\'; - break; - } - if (ctype_xdigit($string[$i])) { - $code = $string[$i]; - for ($a = 1, $i++; $i < $c && $a < 6; $i++, $a++) { - if (!ctype_xdigit($string[$i])) break; - $code .= $string[$i]; - } - // We have to be extremely careful when adding - // new characters, to make sure we're not breaking - // the encoding. - $char = HTMLPurifier_Encoder::unichr(hexdec($code)); - if (HTMLPurifier_Encoder::cleanUTF8($char) === '') continue; - $ret .= $char; - if ($i < $c && trim($string[$i]) !== '') $i--; - continue; - } - if ($string[$i] === "\n") continue; - } - $ret .= $string[$i]; - } - return $ret; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS.php deleted file mode 100644 index 953e706..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS.php +++ /dev/null @@ -1,87 +0,0 @@ -parseCDATA($css); - - $definition = $config->getCSSDefinition(); - - // we're going to break the spec and explode by semicolons. - // This is because semicolon rarely appears in escaped form - // Doing this is generally flaky but fast - // IT MIGHT APPEAR IN URIs, see HTMLPurifier_AttrDef_CSSURI - // for details - - $declarations = explode(';', $css); - $propvalues = array(); - - /** - * Name of the current CSS property being validated. - */ - $property = false; - $context->register('CurrentCSSProperty', $property); - - foreach ($declarations as $declaration) { - if (!$declaration) continue; - if (!strpos($declaration, ':')) continue; - list($property, $value) = explode(':', $declaration, 2); - $property = trim($property); - $value = trim($value); - $ok = false; - do { - if (isset($definition->info[$property])) { - $ok = true; - break; - } - if (ctype_lower($property)) break; - $property = strtolower($property); - if (isset($definition->info[$property])) { - $ok = true; - break; - } - } while(0); - if (!$ok) continue; - // inefficient call, since the validator will do this again - if (strtolower(trim($value)) !== 'inherit') { - // inherit works for everything (but only on the base property) - $result = $definition->info[$property]->validate( - $value, $config, $context ); - } else { - $result = 'inherit'; - } - if ($result === false) continue; - $propvalues[$property] = $result; - } - - $context->destroy('CurrentCSSProperty'); - - // procedure does not write the new CSS simultaneously, so it's - // slightly inefficient, but it's the only way of getting rid of - // duplicates. Perhaps config to optimize it, but not now. - - $new_declarations = ''; - foreach ($propvalues as $prop => $value) { - $new_declarations .= "$prop:$value;"; - } - - return $new_declarations ? $new_declarations : false; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php deleted file mode 100644 index 292c040..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php +++ /dev/null @@ -1,21 +0,0 @@ - 1.0) $result = '1'; - return $result; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Background.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Background.php deleted file mode 100644 index 3a3d20c..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Background.php +++ /dev/null @@ -1,87 +0,0 @@ -getCSSDefinition(); - $this->info['background-color'] = $def->info['background-color']; - $this->info['background-image'] = $def->info['background-image']; - $this->info['background-repeat'] = $def->info['background-repeat']; - $this->info['background-attachment'] = $def->info['background-attachment']; - $this->info['background-position'] = $def->info['background-position']; - } - - public function validate($string, $config, $context) { - - // regular pre-processing - $string = $this->parseCDATA($string); - if ($string === '') return false; - - // munge rgb() decl if necessary - $string = $this->mungeRgb($string); - - // assumes URI doesn't have spaces in it - $bits = explode(' ', strtolower($string)); // bits to process - - $caught = array(); - $caught['color'] = false; - $caught['image'] = false; - $caught['repeat'] = false; - $caught['attachment'] = false; - $caught['position'] = false; - - $i = 0; // number of catches - $none = false; - - foreach ($bits as $bit) { - if ($bit === '') continue; - foreach ($caught as $key => $status) { - if ($key != 'position') { - if ($status !== false) continue; - $r = $this->info['background-' . $key]->validate($bit, $config, $context); - } else { - $r = $bit; - } - if ($r === false) continue; - if ($key == 'position') { - if ($caught[$key] === false) $caught[$key] = ''; - $caught[$key] .= $r . ' '; - } else { - $caught[$key] = $r; - } - $i++; - break; - } - } - - if (!$i) return false; - if ($caught['position'] !== false) { - $caught['position'] = $this->info['background-position']-> - validate($caught['position'], $config, $context); - } - - $ret = array(); - foreach ($caught as $value) { - if ($value === false) continue; - $ret[] = $value; - } - - if (empty($ret)) return false; - return implode(' ', $ret); - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php deleted file mode 100644 index fae82ea..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php +++ /dev/null @@ -1,133 +0,0 @@ - | | left | center | right - ] - [ - | | top | center | bottom - ]? - ] | - [ // this signifies that the vertical and horizontal adjectives - // can be arbitrarily ordered, however, there can only be two, - // one of each, or none at all - [ - left | center | right - ] || - [ - top | center | bottom - ] - ] - top, left = 0% - center, (none) = 50% - bottom, right = 100% -*/ - -/* QuirksMode says: - keyword + length/percentage must be ordered correctly, as per W3C - - Internet Explorer and Opera, however, support arbitrary ordering. We - should fix it up. - - Minor issue though, not strictly necessary. -*/ - -// control freaks may appreciate the ability to convert these to -// percentages or something, but it's not necessary - -/** - * Validates the value of background-position. - */ -class HTMLPurifier_AttrDef_CSS_BackgroundPosition extends HTMLPurifier_AttrDef -{ - - protected $length; - protected $percentage; - - public function __construct() { - $this->length = new HTMLPurifier_AttrDef_CSS_Length(); - $this->percentage = new HTMLPurifier_AttrDef_CSS_Percentage(); - } - - public function validate($string, $config, $context) { - $string = $this->parseCDATA($string); - $bits = explode(' ', $string); - - $keywords = array(); - $keywords['h'] = false; // left, right - $keywords['v'] = false; // top, bottom - $keywords['ch'] = false; // center (first word) - $keywords['cv'] = false; // center (second word) - $measures = array(); - - $i = 0; - - $lookup = array( - 'top' => 'v', - 'bottom' => 'v', - 'left' => 'h', - 'right' => 'h', - 'center' => 'c' - ); - - foreach ($bits as $bit) { - if ($bit === '') continue; - - // test for keyword - $lbit = ctype_lower($bit) ? $bit : strtolower($bit); - if (isset($lookup[$lbit])) { - $status = $lookup[$lbit]; - if ($status == 'c') { - if ($i == 0) { - $status = 'ch'; - } else { - $status = 'cv'; - } - } - $keywords[$status] = $lbit; - $i++; - } - - // test for length - $r = $this->length->validate($bit, $config, $context); - if ($r !== false) { - $measures[] = $r; - $i++; - } - - // test for percentage - $r = $this->percentage->validate($bit, $config, $context); - if ($r !== false) { - $measures[] = $r; - $i++; - } - - } - - if (!$i) return false; // no valid values were caught - - $ret = array(); - - // first keyword - if ($keywords['h']) $ret[] = $keywords['h']; - elseif ($keywords['ch']) { - $ret[] = $keywords['ch']; - $keywords['cv'] = false; // prevent re-use: center = center center - } - elseif (count($measures)) $ret[] = array_shift($measures); - - if ($keywords['v']) $ret[] = $keywords['v']; - elseif ($keywords['cv']) $ret[] = $keywords['cv']; - elseif (count($measures)) $ret[] = array_shift($measures); - - if (empty($ret)) return false; - return implode(' ', $ret); - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Border.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Border.php deleted file mode 100644 index 42a1d1b..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Border.php +++ /dev/null @@ -1,43 +0,0 @@ -getCSSDefinition(); - $this->info['border-width'] = $def->info['border-width']; - $this->info['border-style'] = $def->info['border-style']; - $this->info['border-top-color'] = $def->info['border-top-color']; - } - - public function validate($string, $config, $context) { - $string = $this->parseCDATA($string); - $string = $this->mungeRgb($string); - $bits = explode(' ', $string); - $done = array(); // segments we've finished - $ret = ''; // return value - foreach ($bits as $bit) { - foreach ($this->info as $propname => $validator) { - if (isset($done[$propname])) continue; - $r = $validator->validate($bit, $config, $context); - if ($r !== false) { - $ret .= $r . ' '; - $done[$propname] = true; - break; - } - } - } - return rtrim($ret); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Color.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Color.php deleted file mode 100644 index 07f95a6..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Color.php +++ /dev/null @@ -1,78 +0,0 @@ -get('Core.ColorKeywords'); - - $color = trim($color); - if ($color === '') return false; - - $lower = strtolower($color); - if (isset($colors[$lower])) return $colors[$lower]; - - if (strpos($color, 'rgb(') !== false) { - // rgb literal handling - $length = strlen($color); - if (strpos($color, ')') !== $length - 1) return false; - $triad = substr($color, 4, $length - 4 - 1); - $parts = explode(',', $triad); - if (count($parts) !== 3) return false; - $type = false; // to ensure that they're all the same type - $new_parts = array(); - foreach ($parts as $part) { - $part = trim($part); - if ($part === '') return false; - $length = strlen($part); - if ($part[$length - 1] === '%') { - // handle percents - if (!$type) { - $type = 'percentage'; - } elseif ($type !== 'percentage') { - return false; - } - $num = (float) substr($part, 0, $length - 1); - if ($num < 0) $num = 0; - if ($num > 100) $num = 100; - $new_parts[] = "$num%"; - } else { - // handle integers - if (!$type) { - $type = 'integer'; - } elseif ($type !== 'integer') { - return false; - } - $num = (int) $part; - if ($num < 0) $num = 0; - if ($num > 255) $num = 255; - $new_parts[] = (string) $num; - } - } - $new_triad = implode(',', $new_parts); - $color = "rgb($new_triad)"; - } else { - // hexadecimal handling - if ($color[0] === '#') { - $hex = substr($color, 1); - } else { - $hex = $color; - $color = '#' . $color; - } - $length = strlen($hex); - if ($length !== 3 && $length !== 6) return false; - if (!ctype_xdigit($hex)) return false; - } - - return $color; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Composite.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Composite.php deleted file mode 100644 index de1289c..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Composite.php +++ /dev/null @@ -1,38 +0,0 @@ -defs = $defs; - } - - public function validate($string, $config, $context) { - foreach ($this->defs as $i => $def) { - $result = $this->defs[$i]->validate($string, $config, $context); - if ($result !== false) return $result; - } - return false; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php deleted file mode 100644 index 6599c5b..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php +++ /dev/null @@ -1,28 +0,0 @@ -def = $def; - $this->element = $element; - } - /** - * Checks if CurrentToken is set and equal to $this->element - */ - public function validate($string, $config, $context) { - $token = $context->get('CurrentToken', true); - if ($token && $token->name == $this->element) return false; - return $this->def->validate($string, $config, $context); - } -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Filter.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Filter.php deleted file mode 100644 index 147894b..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Filter.php +++ /dev/null @@ -1,54 +0,0 @@ -intValidator = new HTMLPurifier_AttrDef_Integer(); - } - - public function validate($value, $config, $context) { - $value = $this->parseCDATA($value); - if ($value === 'none') return $value; - // if we looped this we could support multiple filters - $function_length = strcspn($value, '('); - $function = trim(substr($value, 0, $function_length)); - if ($function !== 'alpha' && - $function !== 'Alpha' && - $function !== 'progid:DXImageTransform.Microsoft.Alpha' - ) return false; - $cursor = $function_length + 1; - $parameters_length = strcspn($value, ')', $cursor); - $parameters = substr($value, $cursor, $parameters_length); - $params = explode(',', $parameters); - $ret_params = array(); - $lookup = array(); - foreach ($params as $param) { - list($key, $value) = explode('=', $param); - $key = trim($key); - $value = trim($value); - if (isset($lookup[$key])) continue; - if ($key !== 'opacity') continue; - $value = $this->intValidator->validate($value, $config, $context); - if ($value === false) continue; - $int = (int) $value; - if ($int > 100) $value = '100'; - if ($int < 0) $value = '0'; - $ret_params[] = "$key=$value"; - $lookup[$key] = true; - } - $ret_parameters = implode(',', $ret_params); - $ret_function = "$function($ret_parameters)"; - return $ret_function; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Font.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Font.php deleted file mode 100644 index 699ee0b..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Font.php +++ /dev/null @@ -1,149 +0,0 @@ -getCSSDefinition(); - $this->info['font-style'] = $def->info['font-style']; - $this->info['font-variant'] = $def->info['font-variant']; - $this->info['font-weight'] = $def->info['font-weight']; - $this->info['font-size'] = $def->info['font-size']; - $this->info['line-height'] = $def->info['line-height']; - $this->info['font-family'] = $def->info['font-family']; - } - - public function validate($string, $config, $context) { - - static $system_fonts = array( - 'caption' => true, - 'icon' => true, - 'menu' => true, - 'message-box' => true, - 'small-caption' => true, - 'status-bar' => true - ); - - // regular pre-processing - $string = $this->parseCDATA($string); - if ($string === '') return false; - - // check if it's one of the keywords - $lowercase_string = strtolower($string); - if (isset($system_fonts[$lowercase_string])) { - return $lowercase_string; - } - - $bits = explode(' ', $string); // bits to process - $stage = 0; // this indicates what we're looking for - $caught = array(); // which stage 0 properties have we caught? - $stage_1 = array('font-style', 'font-variant', 'font-weight'); - $final = ''; // output - - for ($i = 0, $size = count($bits); $i < $size; $i++) { - if ($bits[$i] === '') continue; - switch ($stage) { - - // attempting to catch font-style, font-variant or font-weight - case 0: - foreach ($stage_1 as $validator_name) { - if (isset($caught[$validator_name])) continue; - $r = $this->info[$validator_name]->validate( - $bits[$i], $config, $context); - if ($r !== false) { - $final .= $r . ' '; - $caught[$validator_name] = true; - break; - } - } - // all three caught, continue on - if (count($caught) >= 3) $stage = 1; - if ($r !== false) break; - - // attempting to catch font-size and perhaps line-height - case 1: - $found_slash = false; - if (strpos($bits[$i], '/') !== false) { - list($font_size, $line_height) = - explode('/', $bits[$i]); - if ($line_height === '') { - // ooh, there's a space after the slash! - $line_height = false; - $found_slash = true; - } - } else { - $font_size = $bits[$i]; - $line_height = false; - } - $r = $this->info['font-size']->validate( - $font_size, $config, $context); - if ($r !== false) { - $final .= $r; - // attempt to catch line-height - if ($line_height === false) { - // we need to scroll forward - for ($j = $i + 1; $j < $size; $j++) { - if ($bits[$j] === '') continue; - if ($bits[$j] === '/') { - if ($found_slash) { - return false; - } else { - $found_slash = true; - continue; - } - } - $line_height = $bits[$j]; - break; - } - } else { - // slash already found - $found_slash = true; - $j = $i; - } - if ($found_slash) { - $i = $j; - $r = $this->info['line-height']->validate( - $line_height, $config, $context); - if ($r !== false) { - $final .= '/' . $r; - } - } - $final .= ' '; - $stage = 2; - break; - } - return false; - - // attempting to catch font-family - case 2: - $font_family = - implode(' ', array_slice($bits, $i, $size - $i)); - $r = $this->info['font-family']->validate( - $font_family, $config, $context); - if ($r !== false) { - $final .= $r . ' '; - // processing completed successfully - return rtrim($final); - } - return false; - } - } - return false; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php deleted file mode 100644 index 0d9a4e1..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php +++ /dev/null @@ -1,197 +0,0 @@ -mask = '- '; - for ($c = 'a'; $c <= 'z'; $c++) $this->mask .= $c; - for ($c = 'A'; $c <= 'Z'; $c++) $this->mask .= $c; - for ($c = '0'; $c <= '9'; $c++) $this->mask .= $c; // cast-y, but should be fine - // special bytes used by UTF-8 - for ($i = 0x80; $i <= 0xFF; $i++) { - // We don't bother excluding invalid bytes in this range, - // because the our restriction of well-formed UTF-8 will - // prevent these from ever occurring. - $this->mask .= chr($i); - } - - /* - PHP's internal strcspn implementation is - O(length of string * length of mask), making it inefficient - for large masks. However, it's still faster than - preg_match 8) - for (p = s1;;) { - spanp = s2; - do { - if (*spanp == c || p == s1_end) { - return p - s1; - } - } while (spanp++ < (s2_end - 1)); - c = *++p; - } - */ - // possible optimization: invert the mask. - } - - public function validate($string, $config, $context) { - static $generic_names = array( - 'serif' => true, - 'sans-serif' => true, - 'monospace' => true, - 'fantasy' => true, - 'cursive' => true - ); - $allowed_fonts = $config->get('CSS.AllowedFonts'); - - // assume that no font names contain commas in them - $fonts = explode(',', $string); - $final = ''; - foreach($fonts as $font) { - $font = trim($font); - if ($font === '') continue; - // match a generic name - if (isset($generic_names[$font])) { - if ($allowed_fonts === null || isset($allowed_fonts[$font])) { - $final .= $font . ', '; - } - continue; - } - // match a quoted name - if ($font[0] === '"' || $font[0] === "'") { - $length = strlen($font); - if ($length <= 2) continue; - $quote = $font[0]; - if ($font[$length - 1] !== $quote) continue; - $font = substr($font, 1, $length - 2); - } - - $font = $this->expandCSSEscape($font); - - // $font is a pure representation of the font name - - if ($allowed_fonts !== null && !isset($allowed_fonts[$font])) { - continue; - } - - if (ctype_alnum($font) && $font !== '') { - // very simple font, allow it in unharmed - $final .= $font . ', '; - continue; - } - - // bugger out on whitespace. form feed (0C) really - // shouldn't show up regardless - $font = str_replace(array("\n", "\t", "\r", "\x0C"), ' ', $font); - - // Here, there are various classes of characters which need - // to be treated differently: - // - Alphanumeric characters are essentially safe. We - // handled these above. - // - Spaces require quoting, though most parsers will do - // the right thing if there aren't any characters that - // can be misinterpreted - // - Dashes rarely occur, but they fairly unproblematic - // for parsing/rendering purposes. - // The above characters cover the majority of Western font - // names. - // - Arbitrary Unicode characters not in ASCII. Because - // most parsers give little thought to Unicode, treatment - // of these codepoints is basically uniform, even for - // punctuation-like codepoints. These characters can - // show up in non-Western pages and are supported by most - // major browsers, for example: "MS 明朝" is a - // legitimate font-name - // . See - // the CSS3 spec for more examples: - // - // You can see live samples of these on the Internet: - // - // However, most of these fonts have ASCII equivalents: - // for example, 'MS Mincho', and it's considered - // professional to use ASCII font names instead of - // Unicode font names. Thanks Takeshi Terada for - // providing this information. - // The following characters, to my knowledge, have not been - // used to name font names. - // - Single quote. While theoretically you might find a - // font name that has a single quote in its name (serving - // as an apostrophe, e.g. Dave's Scribble), I haven't - // been able to find any actual examples of this. - // Internet Explorer's cssText translation (which I - // believe is invoked by innerHTML) normalizes any - // quoting to single quotes, and fails to escape single - // quotes. (Note that this is not IE's behavior for all - // CSS properties, just some sort of special casing for - // font-family). So a single quote *cannot* be used - // safely in the font-family context if there will be an - // innerHTML/cssText translation. Note that Firefox 3.x - // does this too. - // - Double quote. In IE, these get normalized to - // single-quotes, no matter what the encoding. (Fun - // fact, in IE8, the 'content' CSS property gained - // support, where they special cased to preserve encoded - // double quotes, but still translate unadorned double - // quotes into single quotes.) So, because their - // fixpoint behavior is identical to single quotes, they - // cannot be allowed either. Firefox 3.x displays - // single-quote style behavior. - // - Backslashes are reduced by one (so \\ -> \) every - // iteration, so they cannot be used safely. This shows - // up in IE7, IE8 and FF3 - // - Semicolons, commas and backticks are handled properly. - // - The rest of the ASCII punctuation is handled properly. - // We haven't checked what browsers do to unadorned - // versions, but this is not important as long as the - // browser doesn't /remove/ surrounding quotes (as IE does - // for HTML). - // - // With these results in hand, we conclude that there are - // various levels of safety: - // - Paranoid: alphanumeric, spaces and dashes(?) - // - International: Paranoid + non-ASCII Unicode - // - Edgy: Everything except quotes, backslashes - // - NoJS: Standards compliance, e.g. sod IE. Note that - // with some judicious character escaping (since certain - // types of escaping doesn't work) this is theoretically - // OK as long as innerHTML/cssText is not called. - // We believe that international is a reasonable default - // (that we will implement now), and once we do more - // extensive research, we may feel comfortable with dropping - // it down to edgy. - - // Edgy: alphanumeric, spaces, dashes and Unicode. Use of - // str(c)spn assumes that the string was already well formed - // Unicode (which of course it is). - if (strspn($font, $this->mask) !== strlen($font)) { - continue; - } - - // Historical: - // In the absence of innerHTML/cssText, these ugly - // transforms don't pose a security risk (as \\ and \" - // might--these escapes are not supported by most browsers). - // We could try to be clever and use single-quote wrapping - // when there is a double quote present, but I have choosen - // not to implement that. (NOTE: you can reduce the amount - // of escapes by one depending on what quoting style you use) - // $font = str_replace('\\', '\\5C ', $font); - // $font = str_replace('"', '\\22 ', $font); - // $font = str_replace("'", '\\27 ', $font); - - // font possibly with spaces, requires quoting - $final .= "'$font', "; - } - $final = rtrim($final, ', '); - if ($final === '') return false; - return $final; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php deleted file mode 100644 index 4e6b35e..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php +++ /dev/null @@ -1,40 +0,0 @@ -def = $def; - $this->allow = $allow; - } - /** - * Intercepts and removes !important if necessary - */ - public function validate($string, $config, $context) { - // test for ! and important tokens - $string = trim($string); - $is_important = false; - // :TODO: optimization: test directly for !important and ! important - if (strlen($string) >= 9 && substr($string, -9) === 'important') { - $temp = rtrim(substr($string, 0, -9)); - // use a temp, because we might want to restore important - if (strlen($temp) >= 1 && substr($temp, -1) === '!') { - $string = rtrim(substr($temp, 0, -1)); - $is_important = true; - } - } - $string = $this->def->validate($string, $config, $context); - if ($this->allow && $is_important) $string .= ' !important'; - return $string; - } -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Length.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Length.php deleted file mode 100644 index a07ec58..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Length.php +++ /dev/null @@ -1,47 +0,0 @@ -min = $min !== null ? HTMLPurifier_Length::make($min) : null; - $this->max = $max !== null ? HTMLPurifier_Length::make($max) : null; - } - - public function validate($string, $config, $context) { - $string = $this->parseCDATA($string); - - // Optimizations - if ($string === '') return false; - if ($string === '0') return '0'; - if (strlen($string) === 1) return false; - - $length = HTMLPurifier_Length::make($string); - if (!$length->isValid()) return false; - - if ($this->min) { - $c = $length->compareTo($this->min); - if ($c === false) return false; - if ($c < 0) return false; - } - if ($this->max) { - $c = $length->compareTo($this->max); - if ($c === false) return false; - if ($c > 0) return false; - } - - return $length->toString(); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php deleted file mode 100644 index 4406868..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php +++ /dev/null @@ -1,78 +0,0 @@ -getCSSDefinition(); - $this->info['list-style-type'] = $def->info['list-style-type']; - $this->info['list-style-position'] = $def->info['list-style-position']; - $this->info['list-style-image'] = $def->info['list-style-image']; - } - - public function validate($string, $config, $context) { - - // regular pre-processing - $string = $this->parseCDATA($string); - if ($string === '') return false; - - // assumes URI doesn't have spaces in it - $bits = explode(' ', strtolower($string)); // bits to process - - $caught = array(); - $caught['type'] = false; - $caught['position'] = false; - $caught['image'] = false; - - $i = 0; // number of catches - $none = false; - - foreach ($bits as $bit) { - if ($i >= 3) return; // optimization bit - if ($bit === '') continue; - foreach ($caught as $key => $status) { - if ($status !== false) continue; - $r = $this->info['list-style-' . $key]->validate($bit, $config, $context); - if ($r === false) continue; - if ($r === 'none') { - if ($none) continue; - else $none = true; - if ($key == 'image') continue; - } - $caught[$key] = $r; - $i++; - break; - } - } - - if (!$i) return false; - - $ret = array(); - - // construct type - if ($caught['type']) $ret[] = $caught['type']; - - // construct image - if ($caught['image']) $ret[] = $caught['image']; - - // construct position - if ($caught['position']) $ret[] = $caught['position']; - - if (empty($ret)) return false; - return implode(' ', $ret); - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Multiple.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Multiple.php deleted file mode 100644 index 4d62a40..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Multiple.php +++ /dev/null @@ -1,58 +0,0 @@ -single = $single; - $this->max = $max; - } - - public function validate($string, $config, $context) { - $string = $this->parseCDATA($string); - if ($string === '') return false; - $parts = explode(' ', $string); // parseCDATA replaced \r, \t and \n - $length = count($parts); - $final = ''; - for ($i = 0, $num = 0; $i < $length && $num < $this->max; $i++) { - if (ctype_space($parts[$i])) continue; - $result = $this->single->validate($parts[$i], $config, $context); - if ($result !== false) { - $final .= $result . ' '; - $num++; - } - } - if ($final === '') return false; - return rtrim($final); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Number.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Number.php deleted file mode 100644 index 3f99e12..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Number.php +++ /dev/null @@ -1,69 +0,0 @@ -non_negative = $non_negative; - } - - /** - * @warning Some contexts do not pass $config, $context. These - * variables should not be used without checking HTMLPurifier_Length - */ - public function validate($number, $config, $context) { - - $number = $this->parseCDATA($number); - - if ($number === '') return false; - if ($number === '0') return '0'; - - $sign = ''; - switch ($number[0]) { - case '-': - if ($this->non_negative) return false; - $sign = '-'; - case '+': - $number = substr($number, 1); - } - - if (ctype_digit($number)) { - $number = ltrim($number, '0'); - return $number ? $sign . $number : '0'; - } - - // Period is the only non-numeric character allowed - if (strpos($number, '.') === false) return false; - - list($left, $right) = explode('.', $number, 2); - - if ($left === '' && $right === '') return false; - if ($left !== '' && !ctype_digit($left)) return false; - - $left = ltrim($left, '0'); - $right = rtrim($right, '0'); - - if ($right === '') { - return $left ? $sign . $left : '0'; - } elseif (!ctype_digit($right)) { - return false; - } - - return $sign . $left . '.' . $right; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Percentage.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Percentage.php deleted file mode 100644 index c34b8fc..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/Percentage.php +++ /dev/null @@ -1,40 +0,0 @@ -number_def = new HTMLPurifier_AttrDef_CSS_Number($non_negative); - } - - public function validate($string, $config, $context) { - - $string = $this->parseCDATA($string); - - if ($string === '') return false; - $length = strlen($string); - if ($length === 1) return false; - if ($string[$length - 1] !== '%') return false; - - $number = substr($string, 0, $length - 1); - $number = $this->number_def->validate($number, $config, $context); - - if ($number === false) return false; - return "$number%"; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php deleted file mode 100644 index 772c922..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php +++ /dev/null @@ -1,38 +0,0 @@ - true, - 'overline' => true, - 'underline' => true, - ); - - $string = strtolower($this->parseCDATA($string)); - - if ($string === 'none') return $string; - - $parts = explode(' ', $string); - $final = ''; - foreach ($parts as $part) { - if (isset($allowed_values[$part])) { - $final .= $part . ' '; - } - } - $final = rtrim($final); - if ($final === '') return false; - return $final; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/URI.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/URI.php deleted file mode 100644 index c2f767e..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/CSS/URI.php +++ /dev/null @@ -1,61 +0,0 @@ -parseCDATA($uri_string); - if (strpos($uri_string, 'url(') !== 0) return false; - $uri_string = substr($uri_string, 4); - $new_length = strlen($uri_string) - 1; - if ($uri_string[$new_length] != ')') return false; - $uri = trim(substr($uri_string, 0, $new_length)); - - if (!empty($uri) && ($uri[0] == "'" || $uri[0] == '"')) { - $quote = $uri[0]; - $new_length = strlen($uri) - 1; - if ($uri[$new_length] !== $quote) return false; - $uri = substr($uri, 1, $new_length - 1); - } - - $uri = $this->expandCSSEscape($uri); - - $result = parent::validate($uri, $config, $context); - - if ($result === false) return false; - - // extra sanity check; should have been done by URI - $result = str_replace(array('"', "\\", "\n", "\x0c", "\r"), "", $result); - - // suspicious characters are ()'; we're going to percent encode - // them for safety. - $result = str_replace(array('(', ')', "'"), array('%28', '%29', '%27'), $result); - - // there's an extra bug where ampersands lose their escaping on - // an innerHTML cycle, so a very unlucky query parameter could - // then change the meaning of the URL. Unfortunately, there's - // not much we can do about that... - - return "url(\"$result\")"; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/Enum.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/Enum.php deleted file mode 100644 index 5d603eb..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/Enum.php +++ /dev/null @@ -1,65 +0,0 @@ -valid_values = array_flip($valid_values); - $this->case_sensitive = $case_sensitive; - } - - public function validate($string, $config, $context) { - $string = trim($string); - if (!$this->case_sensitive) { - // we may want to do full case-insensitive libraries - $string = ctype_lower($string) ? $string : strtolower($string); - } - $result = isset($this->valid_values[$string]); - - return $result ? $string : false; - } - - /** - * @param $string In form of comma-delimited list of case-insensitive - * valid values. Example: "foo,bar,baz". Prepend "s:" to make - * case sensitive - */ - public function make($string) { - if (strlen($string) > 2 && $string[0] == 's' && $string[1] == ':') { - $string = substr($string, 2); - $sensitive = true; - } else { - $sensitive = false; - } - $values = explode(',', $string); - return new HTMLPurifier_AttrDef_Enum($values, $sensitive); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/Bool.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/Bool.php deleted file mode 100644 index e06987e..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/Bool.php +++ /dev/null @@ -1,28 +0,0 @@ -name = $name;} - - public function validate($string, $config, $context) { - if (empty($string)) return false; - return $this->name; - } - - /** - * @param $string Name of attribute - */ - public function make($string) { - return new HTMLPurifier_AttrDef_HTML_Bool($string); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/Class.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/Class.php deleted file mode 100644 index 370068d..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/Class.php +++ /dev/null @@ -1,34 +0,0 @@ -getDefinition('HTML')->doctype->name; - if ($name == "XHTML 1.1" || $name == "XHTML 2.0") { - return parent::split($string, $config, $context); - } else { - return preg_split('/\s+/', $string); - } - } - protected function filter($tokens, $config, $context) { - $allowed = $config->get('Attr.AllowedClasses'); - $forbidden = $config->get('Attr.ForbiddenClasses'); - $ret = array(); - foreach ($tokens as $token) { - if ( - ($allowed === null || isset($allowed[$token])) && - !isset($forbidden[$token]) && - // We need this O(n) check because of PHP's array - // implementation that casts -0 to 0. - !in_array($token, $ret, true) - ) { - $ret[] = $token; - } - } - return $ret; - } -} diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/Color.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/Color.php deleted file mode 100644 index d01e204..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/Color.php +++ /dev/null @@ -1,32 +0,0 @@ -get('Core.ColorKeywords'); - - $string = trim($string); - - if (empty($string)) return false; - if (isset($colors[$string])) return $colors[$string]; - if ($string[0] === '#') $hex = substr($string, 1); - else $hex = $string; - - $length = strlen($hex); - if ($length !== 3 && $length !== 6) return false; - if (!ctype_xdigit($hex)) return false; - if ($length === 3) $hex = $hex[0].$hex[0].$hex[1].$hex[1].$hex[2].$hex[2]; - - return "#$hex"; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php deleted file mode 100644 index ae6ea7c..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php +++ /dev/null @@ -1,21 +0,0 @@ -valid_values === false) $this->valid_values = $config->get('Attr.AllowedFrameTargets'); - return parent::validate($string, $config, $context); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/ID.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/ID.php deleted file mode 100644 index 81d0376..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/ID.php +++ /dev/null @@ -1,70 +0,0 @@ -get('Attr.EnableID')) return false; - - $id = trim($id); // trim it first - - if ($id === '') return false; - - $prefix = $config->get('Attr.IDPrefix'); - if ($prefix !== '') { - $prefix .= $config->get('Attr.IDPrefixLocal'); - // prevent re-appending the prefix - if (strpos($id, $prefix) !== 0) $id = $prefix . $id; - } elseif ($config->get('Attr.IDPrefixLocal') !== '') { - trigger_error('%Attr.IDPrefixLocal cannot be used unless '. - '%Attr.IDPrefix is set', E_USER_WARNING); - } - - //if (!$this->ref) { - $id_accumulator =& $context->get('IDAccumulator'); - if (isset($id_accumulator->ids[$id])) return false; - //} - - // we purposely avoid using regex, hopefully this is faster - - if (ctype_alpha($id)) { - $result = true; - } else { - if (!ctype_alpha(@$id[0])) return false; - $trim = trim( // primitive style of regexps, I suppose - $id, - 'A..Za..z0..9:-._' - ); - $result = ($trim === ''); - } - - $regexp = $config->get('Attr.IDBlacklistRegexp'); - if ($regexp && preg_match($regexp, $id)) { - return false; - } - - if (/*!$this->ref && */$result) $id_accumulator->add($id); - - // if no change was made to the ID, return the result - // else, return the new id if stripping whitespace made it - // valid, or return false. - return $result ? $id : false; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/Length.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/Length.php deleted file mode 100644 index a242f9c..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/Length.php +++ /dev/null @@ -1,41 +0,0 @@ - 100) return '100%'; - - return ((string) $points) . '%'; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php deleted file mode 100644 index 76d25ed..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php +++ /dev/null @@ -1,53 +0,0 @@ - 'AllowedRel', - 'rev' => 'AllowedRev' - ); - if (!isset($configLookup[$name])) { - trigger_error('Unrecognized attribute name for link '. - 'relationship.', E_USER_ERROR); - return; - } - $this->name = $configLookup[$name]; - } - - public function validate($string, $config, $context) { - - $allowed = $config->get('Attr.' . $this->name); - if (empty($allowed)) return false; - - $string = $this->parseCDATA($string); - $parts = explode(' ', $string); - - // lookup to prevent duplicates - $ret_lookup = array(); - foreach ($parts as $part) { - $part = strtolower(trim($part)); - if (!isset($allowed[$part])) continue; - $ret_lookup[$part] = true; - } - - if (empty($ret_lookup)) return false; - $string = implode(' ', array_keys($ret_lookup)); - - return $string; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php deleted file mode 100644 index c72fc76..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php +++ /dev/null @@ -1,41 +0,0 @@ -split($string, $config, $context); - $tokens = $this->filter($tokens, $config, $context); - if (empty($tokens)) return false; - return implode(' ', $tokens); - - } - - /** - * Splits a space separated list of tokens into its constituent parts. - */ - protected function split($string, $config, $context) { - // OPTIMIZABLE! - // do the preg_match, capture all subpatterns for reformulation - - // we don't support U+00A1 and up codepoints or - // escaping because I don't know how to do that with regexps - // and plus it would complicate optimization efforts (you never - // see that anyway). - $pattern = '/(?:(?<=\s)|\A)'. // look behind for space or string start - '((?:--|-?[A-Za-z_])[A-Za-z_\-0-9]*)'. - '(?:(?=\s)|\z)/'; // look ahead for space or string end - preg_match_all($pattern, $string, $matches); - return $matches[1]; - } - - /** - * Template method for removing certain tokens based on arbitrary criteria. - * @note If we wanted to be really functional, we'd do an array_filter - * with a callback. But... we're not. - */ - protected function filter($tokens, $config, $context) { - return $tokens; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/Pixels.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/Pixels.php deleted file mode 100644 index 4cb2c1b..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/HTML/Pixels.php +++ /dev/null @@ -1,48 +0,0 @@ -max = $max; - } - - public function validate($string, $config, $context) { - - $string = trim($string); - if ($string === '0') return $string; - if ($string === '') return false; - $length = strlen($string); - if (substr($string, $length - 2) == 'px') { - $string = substr($string, 0, $length - 2); - } - if (!is_numeric($string)) return false; - $int = (int) $string; - - if ($int < 0) return '0'; - - // upper-bound value, extremely high values can - // crash operating systems, see - // WARNING, above link WILL crash you if you're using Windows - - if ($this->max !== null && $int > $this->max) return (string) $this->max; - - return (string) $int; - - } - - public function make($string) { - if ($string === '') $max = null; - else $max = (int) $string; - $class = get_class($this); - return new $class($max); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/Integer.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/Integer.php deleted file mode 100644 index d59738d..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/Integer.php +++ /dev/null @@ -1,73 +0,0 @@ -negative = $negative; - $this->zero = $zero; - $this->positive = $positive; - } - - public function validate($integer, $config, $context) { - - $integer = $this->parseCDATA($integer); - if ($integer === '') return false; - - // we could possibly simply typecast it to integer, but there are - // certain fringe cases that must not return an integer. - - // clip leading sign - if ( $this->negative && $integer[0] === '-' ) { - $digits = substr($integer, 1); - if ($digits === '0') $integer = '0'; // rm minus sign for zero - } elseif( $this->positive && $integer[0] === '+' ) { - $digits = $integer = substr($integer, 1); // rm unnecessary plus - } else { - $digits = $integer; - } - - // test if it's numeric - if (!ctype_digit($digits)) return false; - - // perform scope tests - if (!$this->zero && $integer == 0) return false; - if (!$this->positive && $integer > 0) return false; - if (!$this->negative && $integer < 0) return false; - - return $integer; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/Lang.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/Lang.php deleted file mode 100644 index 10e6da5..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/Lang.php +++ /dev/null @@ -1,73 +0,0 @@ - 8 || !ctype_alnum($subtags[1])) { - return $new_string; - } - if (!ctype_lower($subtags[1])) $subtags[1] = strtolower($subtags[1]); - - $new_string .= '-' . $subtags[1]; - if ($num_subtags == 2) return $new_string; - - // process all other subtags, index 2 and up - for ($i = 2; $i < $num_subtags; $i++) { - $length = strlen($subtags[$i]); - if ($length == 0 || $length > 8 || !ctype_alnum($subtags[$i])) { - return $new_string; - } - if (!ctype_lower($subtags[$i])) { - $subtags[$i] = strtolower($subtags[$i]); - } - $new_string .= '-' . $subtags[$i]; - } - - return $new_string; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/Switch.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/Switch.php deleted file mode 100644 index c9e3ed1..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/Switch.php +++ /dev/null @@ -1,34 +0,0 @@ -tag = $tag; - $this->withTag = $with_tag; - $this->withoutTag = $without_tag; - } - - public function validate($string, $config, $context) { - $token = $context->get('CurrentToken', true); - if (!$token || $token->name !== $this->tag) { - return $this->withoutTag->validate($string, $config, $context); - } else { - return $this->withTag->validate($string, $config, $context); - } - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/Text.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/Text.php deleted file mode 100644 index c6216cc..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/Text.php +++ /dev/null @@ -1,15 +0,0 @@ -parseCDATA($string); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/URI.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/URI.php deleted file mode 100644 index 01a6d83..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/URI.php +++ /dev/null @@ -1,77 +0,0 @@ -parser = new HTMLPurifier_URIParser(); - $this->embedsResource = (bool) $embeds_resource; - } - - public function make($string) { - $embeds = (bool) $string; - return new HTMLPurifier_AttrDef_URI($embeds); - } - - public function validate($uri, $config, $context) { - - if ($config->get('URI.Disable')) return false; - - $uri = $this->parseCDATA($uri); - - // parse the URI - $uri = $this->parser->parse($uri); - if ($uri === false) return false; - - // add embedded flag to context for validators - $context->register('EmbeddedURI', $this->embedsResource); - - $ok = false; - do { - - // generic validation - $result = $uri->validate($config, $context); - if (!$result) break; - - // chained filtering - $uri_def = $config->getDefinition('URI'); - $result = $uri_def->filter($uri, $config, $context); - if (!$result) break; - - // scheme-specific validation - $scheme_obj = $uri->getSchemeObj($config, $context); - if (!$scheme_obj) break; - if ($this->embedsResource && !$scheme_obj->browsable) break; - $result = $scheme_obj->validate($uri, $config, $context); - if (!$result) break; - - // Post chained filtering - $result = $uri_def->postFilter($uri, $config, $context); - if (!$result) break; - - // survived gauntlet - $ok = true; - - } while (false); - - $context->destroy('EmbeddedURI'); - if (!$ok) return false; - - // back to string - return $uri->toString(); - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/URI/Email.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/URI/Email.php deleted file mode 100644 index bfee9d1..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/URI/Email.php +++ /dev/null @@ -1,17 +0,0 @@ -" - // that needs more percent encoding to be done - if ($string == '') return false; - $string = trim($string); - $result = preg_match('/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i', $string); - return $result ? $string : false; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/URI/Host.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/URI/Host.php deleted file mode 100644 index feca469..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/URI/Host.php +++ /dev/null @@ -1,68 +0,0 @@ -ipv4 = new HTMLPurifier_AttrDef_URI_IPv4(); - $this->ipv6 = new HTMLPurifier_AttrDef_URI_IPv6(); - } - - public function validate($string, $config, $context) { - $length = strlen($string); - // empty hostname is OK; it's usually semantically equivalent: - // the default host as defined by a URI scheme is used: - // - // If the URI scheme defines a default for host, then that - // default applies when the host subcomponent is undefined - // or when the registered name is empty (zero length). - if ($string === '') return ''; - if ($length > 1 && $string[0] === '[' && $string[$length-1] === ']') { - //IPv6 - $ip = substr($string, 1, $length - 2); - $valid = $this->ipv6->validate($ip, $config, $context); - if ($valid === false) return false; - return '['. $valid . ']'; - } - - // need to do checks on unusual encodings too - $ipv4 = $this->ipv4->validate($string, $config, $context); - if ($ipv4 !== false) return $ipv4; - - // A regular domain name. - - // This breaks I18N domain names, but we don't have proper IRI support, - // so force users to insert Punycode. If there's complaining we'll - // try to fix things into an international friendly form. - - // The productions describing this are: - $a = '[a-z]'; // alpha - $an = '[a-z0-9]'; // alphanum - $and = '[a-z0-9-]'; // alphanum | "-" - // domainlabel = alphanum | alphanum *( alphanum | "-" ) alphanum - $domainlabel = "$an($and*$an)?"; - // toplabel = alpha | alpha *( alphanum | "-" ) alphanum - $toplabel = "$a($and*$an)?"; - // hostname = *( domainlabel "." ) toplabel [ "." ] - $match = preg_match("/^($domainlabel\.)*$toplabel\.?$/i", $string); - if (!$match) return false; - - return $string; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/URI/IPv4.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/URI/IPv4.php deleted file mode 100644 index ec4cf59..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/URI/IPv4.php +++ /dev/null @@ -1,39 +0,0 @@ -ip4) $this->_loadRegex(); - - if (preg_match('#^' . $this->ip4 . '$#s', $aIP)) - { - return $aIP; - } - - return false; - - } - - /** - * Lazy load function to prevent regex from being stuffed in - * cache. - */ - protected function _loadRegex() { - $oct = '(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])'; // 0-255 - $this->ip4 = "(?:{$oct}\\.{$oct}\\.{$oct}\\.{$oct})"; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/URI/IPv6.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/URI/IPv6.php deleted file mode 100644 index 9454e9b..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrDef/URI/IPv6.php +++ /dev/null @@ -1,99 +0,0 @@ -ip4) $this->_loadRegex(); - - $original = $aIP; - - $hex = '[0-9a-fA-F]'; - $blk = '(?:' . $hex . '{1,4})'; - $pre = '(?:/(?:12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9]))'; // /0 - /128 - - // prefix check - if (strpos($aIP, '/') !== false) - { - if (preg_match('#' . $pre . '$#s', $aIP, $find)) - { - $aIP = substr($aIP, 0, 0-strlen($find[0])); - unset($find); - } - else - { - return false; - } - } - - // IPv4-compatiblity check - if (preg_match('#(?<=:'.')' . $this->ip4 . '$#s', $aIP, $find)) - { - $aIP = substr($aIP, 0, 0-strlen($find[0])); - $ip = explode('.', $find[0]); - $ip = array_map('dechex', $ip); - $aIP .= $ip[0] . $ip[1] . ':' . $ip[2] . $ip[3]; - unset($find, $ip); - } - - // compression check - $aIP = explode('::', $aIP); - $c = count($aIP); - if ($c > 2) - { - return false; - } - elseif ($c == 2) - { - list($first, $second) = $aIP; - $first = explode(':', $first); - $second = explode(':', $second); - - if (count($first) + count($second) > 8) - { - return false; - } - - while(count($first) < 8) - { - array_push($first, '0'); - } - - array_splice($first, 8 - count($second), 8, $second); - $aIP = $first; - unset($first,$second); - } - else - { - $aIP = explode(':', $aIP[0]); - } - $c = count($aIP); - - if ($c != 8) - { - return false; - } - - // All the pieces should be 16-bit hex strings. Are they? - foreach ($aIP as $piece) - { - if (!preg_match('#^[0-9a-fA-F]{4}$#s', sprintf('%04s', $piece))) - { - return false; - } - } - - return $original; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform.php deleted file mode 100644 index e61d3e0..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform.php +++ /dev/null @@ -1,56 +0,0 @@ -confiscateAttr($attr, 'background'); - // some validation should happen here - - $this->prependCSS($attr, "background-image:url($background);"); - - return $attr; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/BdoDir.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/BdoDir.php deleted file mode 100644 index 4d1a056..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/BdoDir.php +++ /dev/null @@ -1,19 +0,0 @@ -get('Attr.DefaultTextDir'); - return $attr; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/BgColor.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/BgColor.php deleted file mode 100644 index ad3916b..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/BgColor.php +++ /dev/null @@ -1,23 +0,0 @@ -confiscateAttr($attr, 'bgcolor'); - // some validation should happen here - - $this->prependCSS($attr, "background-color:$bgcolor;"); - - return $attr; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/BoolToCSS.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/BoolToCSS.php deleted file mode 100644 index 51159b6..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/BoolToCSS.php +++ /dev/null @@ -1,36 +0,0 @@ -attr = $attr; - $this->css = $css; - } - - public function transform($attr, $config, $context) { - if (!isset($attr[$this->attr])) return $attr; - unset($attr[$this->attr]); - $this->prependCSS($attr, $this->css); - return $attr; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Border.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Border.php deleted file mode 100644 index 476b0b0..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Border.php +++ /dev/null @@ -1,18 +0,0 @@ -confiscateAttr($attr, 'border'); - // some validation should happen here - $this->prependCSS($attr, "border:{$border_width}px solid;"); - return $attr; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/EnumToCSS.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/EnumToCSS.php deleted file mode 100644 index 2a5b451..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/EnumToCSS.php +++ /dev/null @@ -1,58 +0,0 @@ -attr = $attr; - $this->enumToCSS = $enum_to_css; - $this->caseSensitive = (bool) $case_sensitive; - } - - public function transform($attr, $config, $context) { - - if (!isset($attr[$this->attr])) return $attr; - - $value = trim($attr[$this->attr]); - unset($attr[$this->attr]); - - if (!$this->caseSensitive) $value = strtolower($value); - - if (!isset($this->enumToCSS[$value])) { - return $attr; - } - - $this->prependCSS($attr, $this->enumToCSS[$value]); - - return $attr; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/ImgRequired.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/ImgRequired.php deleted file mode 100644 index 7f0e4b7..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/ImgRequired.php +++ /dev/null @@ -1,43 +0,0 @@ -get('Core.RemoveInvalidImg')) return $attr; - $attr['src'] = $config->get('Attr.DefaultInvalidImage'); - $src = false; - } - - if (!isset($attr['alt'])) { - if ($src) { - $alt = $config->get('Attr.DefaultImageAlt'); - if ($alt === null) { - // truncate if the alt is too long - $attr['alt'] = substr(basename($attr['src']),0,40); - } else { - $attr['alt'] = $alt; - } - } else { - $attr['alt'] = $config->get('Attr.DefaultInvalidImageAlt'); - } - } - - return $attr; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/ImgSpace.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/ImgSpace.php deleted file mode 100644 index fd84c10..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/ImgSpace.php +++ /dev/null @@ -1,44 +0,0 @@ - array('left', 'right'), - 'vspace' => array('top', 'bottom') - ); - - public function __construct($attr) { - $this->attr = $attr; - if (!isset($this->css[$attr])) { - trigger_error(htmlspecialchars($attr) . ' is not valid space attribute'); - } - } - - public function transform($attr, $config, $context) { - - if (!isset($attr[$this->attr])) return $attr; - - $width = $this->confiscateAttr($attr, $this->attr); - // some validation could happen here - - if (!isset($this->css[$this->attr])) return $attr; - - $style = ''; - foreach ($this->css[$this->attr] as $suffix) { - $property = "margin-$suffix"; - $style .= "$property:{$width}px;"; - } - - $this->prependCSS($attr, $style); - - return $attr; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Input.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Input.php deleted file mode 100644 index 1682955..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Input.php +++ /dev/null @@ -1,40 +0,0 @@ -pixels = new HTMLPurifier_AttrDef_HTML_Pixels(); - } - - public function transform($attr, $config, $context) { - if (!isset($attr['type'])) $t = 'text'; - else $t = strtolower($attr['type']); - if (isset($attr['checked']) && $t !== 'radio' && $t !== 'checkbox') { - unset($attr['checked']); - } - if (isset($attr['maxlength']) && $t !== 'text' && $t !== 'password') { - unset($attr['maxlength']); - } - if (isset($attr['size']) && $t !== 'text' && $t !== 'password') { - $result = $this->pixels->validate($attr['size'], $config, $context); - if ($result === false) unset($attr['size']); - else $attr['size'] = $result; - } - if (isset($attr['src']) && $t !== 'image') { - unset($attr['src']); - } - if (!isset($attr['value']) && ($t === 'radio' || $t === 'checkbox')) { - $attr['value'] = ''; - } - return $attr; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Lang.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Lang.php deleted file mode 100644 index 5869e7f..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Lang.php +++ /dev/null @@ -1,28 +0,0 @@ -name = $name; - $this->cssName = $css_name ? $css_name : $name; - } - - public function transform($attr, $config, $context) { - if (!isset($attr[$this->name])) return $attr; - $length = $this->confiscateAttr($attr, $this->name); - if(ctype_digit($length)) $length .= 'px'; - $this->prependCSS($attr, $this->cssName . ":$length;"); - return $attr; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Name.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Name.php deleted file mode 100644 index 15315bc..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Name.php +++ /dev/null @@ -1,21 +0,0 @@ -get('HTML.Attr.Name.UseCDATA')) return $attr; - if (!isset($attr['name'])) return $attr; - $id = $this->confiscateAttr($attr, 'name'); - if ( isset($attr['id'])) return $attr; - $attr['id'] = $id; - return $attr; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/NameSync.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/NameSync.php deleted file mode 100644 index a95638c..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/NameSync.php +++ /dev/null @@ -1,27 +0,0 @@ -idDef = new HTMLPurifier_AttrDef_HTML_ID(); - } - - public function transform($attr, $config, $context) { - if (!isset($attr['name'])) return $attr; - $name = $attr['name']; - if (isset($attr['id']) && $attr['id'] === $name) return $attr; - $result = $this->idDef->validate($name, $config, $context); - if ($result === false) unset($attr['name']); - else $attr['name'] = $result; - return $attr; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Nofollow.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Nofollow.php deleted file mode 100644 index 573b42c..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Nofollow.php +++ /dev/null @@ -1,41 +0,0 @@ -parser = new HTMLPurifier_URIParser(); - } - - public function transform($attr, $config, $context) { - - if (!isset($attr['href'])) { - return $attr; - } - - // XXX Kind of inefficient - $url = $this->parser->parse($attr['href']); - $scheme = $url->getSchemeObj($config, $context); - - if (!is_null($url->host) && $scheme !== false && $scheme->browsable) { - if (isset($attr['rel'])) { - $attr['rel'] .= ' nofollow'; - } else { - $attr['rel'] = 'nofollow'; - } - } - - return $attr; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/SafeEmbed.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/SafeEmbed.php deleted file mode 100644 index 4da4499..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/SafeEmbed.php +++ /dev/null @@ -1,15 +0,0 @@ -uri = new HTMLPurifier_AttrDef_URI(true); // embedded - $this->wmode = new HTMLPurifier_AttrDef_Enum(array('window', 'opaque', 'transparent')); - } - - public function transform($attr, $config, $context) { - // If we add support for other objects, we'll need to alter the - // transforms. - switch ($attr['name']) { - // application/x-shockwave-flash - // Keep this synchronized with Injector/SafeObject.php - case 'allowScriptAccess': - $attr['value'] = 'never'; - break; - case 'allowNetworking': - $attr['value'] = 'internal'; - break; - case 'allowFullScreen': - if ($config->get('HTML.FlashAllowFullScreen')) { - $attr['value'] = ($attr['value'] == 'true') ? 'true' : 'false'; - } else { - $attr['value'] = 'false'; - } - break; - case 'wmode': - $attr['value'] = $this->wmode->validate($attr['value'], $config, $context); - break; - case 'movie': - case 'src': - $attr['name'] = "movie"; - $attr['value'] = $this->uri->validate($attr['value'], $config, $context); - break; - case 'flashvars': - // we're going to allow arbitrary inputs to the SWF, on - // the reasoning that it could only hack the SWF, not us. - break; - // add other cases to support other param name/value pairs - default: - $attr['name'] = $attr['value'] = null; - } - return $attr; - } -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/ScriptRequired.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/ScriptRequired.php deleted file mode 100644 index 4499050..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/ScriptRequired.php +++ /dev/null @@ -1,16 +0,0 @@ - - */ -class HTMLPurifier_AttrTransform_ScriptRequired extends HTMLPurifier_AttrTransform -{ - public function transform($attr, $config, $context) { - if (!isset($attr['type'])) { - $attr['type'] = 'text/javascript'; - } - return $attr; - } -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Textarea.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Textarea.php deleted file mode 100644 index 81ac348..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTransform/Textarea.php +++ /dev/null @@ -1,18 +0,0 @@ - - */ -class HTMLPurifier_AttrTransform_Textarea extends HTMLPurifier_AttrTransform -{ - - public function transform($attr, $config, $context) { - // Calculated from Firefox - if (!isset($attr['cols'])) $attr['cols'] = '22'; - if (!isset($attr['rows'])) $attr['rows'] = '3'; - return $attr; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTypes.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTypes.php deleted file mode 100644 index fc2ea4e..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrTypes.php +++ /dev/null @@ -1,77 +0,0 @@ -info['Enum'] = new HTMLPurifier_AttrDef_Enum(); - $this->info['Bool'] = new HTMLPurifier_AttrDef_HTML_Bool(); - - $this->info['CDATA'] = new HTMLPurifier_AttrDef_Text(); - $this->info['ID'] = new HTMLPurifier_AttrDef_HTML_ID(); - $this->info['Length'] = new HTMLPurifier_AttrDef_HTML_Length(); - $this->info['MultiLength'] = new HTMLPurifier_AttrDef_HTML_MultiLength(); - $this->info['NMTOKENS'] = new HTMLPurifier_AttrDef_HTML_Nmtokens(); - $this->info['Pixels'] = new HTMLPurifier_AttrDef_HTML_Pixels(); - $this->info['Text'] = new HTMLPurifier_AttrDef_Text(); - $this->info['URI'] = new HTMLPurifier_AttrDef_URI(); - $this->info['LanguageCode'] = new HTMLPurifier_AttrDef_Lang(); - $this->info['Color'] = new HTMLPurifier_AttrDef_HTML_Color(); - - // unimplemented aliases - $this->info['ContentType'] = new HTMLPurifier_AttrDef_Text(); - $this->info['ContentTypes'] = new HTMLPurifier_AttrDef_Text(); - $this->info['Charsets'] = new HTMLPurifier_AttrDef_Text(); - $this->info['Character'] = new HTMLPurifier_AttrDef_Text(); - - // "proprietary" types - $this->info['Class'] = new HTMLPurifier_AttrDef_HTML_Class(); - - // number is really a positive integer (one or more digits) - // FIXME: ^^ not always, see start and value of list items - $this->info['Number'] = new HTMLPurifier_AttrDef_Integer(false, false, true); - } - - /** - * Retrieves a type - * @param $type String type name - * @return Object AttrDef for type - */ - public function get($type) { - - // determine if there is any extra info tacked on - if (strpos($type, '#') !== false) list($type, $string) = explode('#', $type, 2); - else $string = ''; - - if (!isset($this->info[$type])) { - trigger_error('Cannot retrieve undefined attribute type ' . $type, E_USER_ERROR); - return; - } - - return $this->info[$type]->make($string); - - } - - /** - * Sets a new implementation for a type - * @param $type String type name - * @param $impl Object AttrDef for type - */ - public function set($type, $impl) { - $this->info[$type] = $impl; - } -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrValidator.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrValidator.php deleted file mode 100644 index 829a0f8..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/AttrValidator.php +++ /dev/null @@ -1,162 +0,0 @@ -getHTMLDefinition(); - $e =& $context->get('ErrorCollector', true); - - // initialize IDAccumulator if necessary - $ok =& $context->get('IDAccumulator', true); - if (!$ok) { - $id_accumulator = HTMLPurifier_IDAccumulator::build($config, $context); - $context->register('IDAccumulator', $id_accumulator); - } - - // initialize CurrentToken if necessary - $current_token =& $context->get('CurrentToken', true); - if (!$current_token) $context->register('CurrentToken', $token); - - if ( - !$token instanceof HTMLPurifier_Token_Start && - !$token instanceof HTMLPurifier_Token_Empty - ) return $token; - - // create alias to global definition array, see also $defs - // DEFINITION CALL - $d_defs = $definition->info_global_attr; - - // don't update token until the very end, to ensure an atomic update - $attr = $token->attr; - - // do global transformations (pre) - // nothing currently utilizes this - foreach ($definition->info_attr_transform_pre as $transform) { - $attr = $transform->transform($o = $attr, $config, $context); - if ($e) { - if ($attr != $o) $e->send(E_NOTICE, 'AttrValidator: Attributes transformed', $o, $attr); - } - } - - // do local transformations only applicable to this element (pre) - // ex.

to

- foreach ($definition->info[$token->name]->attr_transform_pre as $transform) { - $attr = $transform->transform($o = $attr, $config, $context); - if ($e) { - if ($attr != $o) $e->send(E_NOTICE, 'AttrValidator: Attributes transformed', $o, $attr); - } - } - - // create alias to this element's attribute definition array, see - // also $d_defs (global attribute definition array) - // DEFINITION CALL - $defs = $definition->info[$token->name]->attr; - - $attr_key = false; - $context->register('CurrentAttr', $attr_key); - - // iterate through all the attribute keypairs - // Watch out for name collisions: $key has previously been used - foreach ($attr as $attr_key => $value) { - - // call the definition - if ( isset($defs[$attr_key]) ) { - // there is a local definition defined - if ($defs[$attr_key] === false) { - // We've explicitly been told not to allow this element. - // This is usually when there's a global definition - // that must be overridden. - // Theoretically speaking, we could have a - // AttrDef_DenyAll, but this is faster! - $result = false; - } else { - // validate according to the element's definition - $result = $defs[$attr_key]->validate( - $value, $config, $context - ); - } - } elseif ( isset($d_defs[$attr_key]) ) { - // there is a global definition defined, validate according - // to the global definition - $result = $d_defs[$attr_key]->validate( - $value, $config, $context - ); - } else { - // system never heard of the attribute? DELETE! - $result = false; - } - - // put the results into effect - if ($result === false || $result === null) { - // this is a generic error message that should replaced - // with more specific ones when possible - if ($e) $e->send(E_ERROR, 'AttrValidator: Attribute removed'); - - // remove the attribute - unset($attr[$attr_key]); - } elseif (is_string($result)) { - // generally, if a substitution is happening, there - // was some sort of implicit correction going on. We'll - // delegate it to the attribute classes to say exactly what. - - // simple substitution - $attr[$attr_key] = $result; - } else { - // nothing happens - } - - // we'd also want slightly more complicated substitution - // involving an array as the return value, - // although we're not sure how colliding attributes would - // resolve (certain ones would be completely overriden, - // others would prepend themselves). - } - - $context->destroy('CurrentAttr'); - - // post transforms - - // global (error reporting untested) - foreach ($definition->info_attr_transform_post as $transform) { - $attr = $transform->transform($o = $attr, $config, $context); - if ($e) { - if ($attr != $o) $e->send(E_NOTICE, 'AttrValidator: Attributes transformed', $o, $attr); - } - } - - // local (error reporting untested) - foreach ($definition->info[$token->name]->attr_transform_post as $transform) { - $attr = $transform->transform($o = $attr, $config, $context); - if ($e) { - if ($attr != $o) $e->send(E_NOTICE, 'AttrValidator: Attributes transformed', $o, $attr); - } - } - - $token->attr = $attr; - - // destroy CurrentToken if we made it ourselves - if (!$current_token) $context->destroy('CurrentToken'); - - } - - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Bootstrap.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Bootstrap.php deleted file mode 100644 index 607c5b1..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Bootstrap.php +++ /dev/null @@ -1,104 +0,0 @@ - -if (!defined('PHP_EOL')) { - switch (strtoupper(substr(PHP_OS, 0, 3))) { - case 'WIN': - define('PHP_EOL', "\r\n"); - break; - case 'DAR': - define('PHP_EOL', "\r"); - break; - default: - define('PHP_EOL', "\n"); - } -} - -/** - * Bootstrap class that contains meta-functionality for HTML Purifier such as - * the autoload function. - * - * @note - * This class may be used without any other files from HTML Purifier. - */ -class HTMLPurifier_Bootstrap -{ - - /** - * Autoload function for HTML Purifier - * @param $class Class to load - */ - public static function autoload($class) { - $file = HTMLPurifier_Bootstrap::getPath($class); - if (!$file) return false; - // Technically speaking, it should be ok and more efficient to - // just do 'require', but Antonio Parraga reports that with - // Zend extensions such as Zend debugger and APC, this invariant - // may be broken. Since we have efficient alternatives, pay - // the cost here and avoid the bug. - require_once HTMLPURIFIER_PREFIX . '/' . $file; - return true; - } - - /** - * Returns the path for a specific class. - */ - public static function getPath($class) { - if (strncmp('HTMLPurifier', $class, 12) !== 0) return false; - // Custom implementations - if (strncmp('HTMLPurifier_Language_', $class, 22) === 0) { - $code = str_replace('_', '-', substr($class, 22)); - $file = 'HTMLPurifier/Language/classes/' . $code . '.php'; - } else { - $file = str_replace('_', '/', $class) . '.php'; - } - if (!file_exists(HTMLPURIFIER_PREFIX . '/' . $file)) return false; - return $file; - } - - /** - * "Pre-registers" our autoloader on the SPL stack. - */ - public static function registerAutoload() { - $autoload = array('HTMLPurifier_Bootstrap', 'autoload'); - if ( ($funcs = spl_autoload_functions()) === false ) { - spl_autoload_register($autoload); - } elseif (function_exists('spl_autoload_unregister')) { - $buggy = version_compare(PHP_VERSION, '5.2.11', '<'); - $compat = version_compare(PHP_VERSION, '5.1.2', '<=') && - version_compare(PHP_VERSION, '5.1.0', '>='); - foreach ($funcs as $func) { - if ($buggy && is_array($func)) { - // :TRICKY: There are some compatibility issues and some - // places where we need to error out - $reflector = new ReflectionMethod($func[0], $func[1]); - if (!$reflector->isStatic()) { - throw new Exception(' - HTML Purifier autoloader registrar is not compatible - with non-static object methods due to PHP Bug #44144; - Please do not use HTMLPurifier.autoload.php (or any - file that includes this file); instead, place the code: - spl_autoload_register(array(\'HTMLPurifier_Bootstrap\', \'autoload\')) - after your own autoloaders. - '); - } - // Suprisingly, spl_autoload_register supports the - // Class::staticMethod callback format, although call_user_func doesn't - if ($compat) $func = implode('::', $func); - } - spl_autoload_unregister($func); - } - spl_autoload_register($autoload); - foreach ($funcs as $func) spl_autoload_register($func); - } - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/CSSDefinition.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/CSSDefinition.php deleted file mode 100644 index 91619f5..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/CSSDefinition.php +++ /dev/null @@ -1,322 +0,0 @@ -info['text-align'] = new HTMLPurifier_AttrDef_Enum( - array('left', 'right', 'center', 'justify'), false); - - $border_style = - $this->info['border-bottom-style'] = - $this->info['border-right-style'] = - $this->info['border-left-style'] = - $this->info['border-top-style'] = new HTMLPurifier_AttrDef_Enum( - array('none', 'hidden', 'dotted', 'dashed', 'solid', 'double', - 'groove', 'ridge', 'inset', 'outset'), false); - - $this->info['border-style'] = new HTMLPurifier_AttrDef_CSS_Multiple($border_style); - - $this->info['clear'] = new HTMLPurifier_AttrDef_Enum( - array('none', 'left', 'right', 'both'), false); - $this->info['float'] = new HTMLPurifier_AttrDef_Enum( - array('none', 'left', 'right'), false); - $this->info['font-style'] = new HTMLPurifier_AttrDef_Enum( - array('normal', 'italic', 'oblique'), false); - $this->info['font-variant'] = new HTMLPurifier_AttrDef_Enum( - array('normal', 'small-caps'), false); - - $uri_or_none = new HTMLPurifier_AttrDef_CSS_Composite( - array( - new HTMLPurifier_AttrDef_Enum(array('none')), - new HTMLPurifier_AttrDef_CSS_URI() - ) - ); - - $this->info['list-style-position'] = new HTMLPurifier_AttrDef_Enum( - array('inside', 'outside'), false); - $this->info['list-style-type'] = new HTMLPurifier_AttrDef_Enum( - array('disc', 'circle', 'square', 'decimal', 'lower-roman', - 'upper-roman', 'lower-alpha', 'upper-alpha', 'none'), false); - $this->info['list-style-image'] = $uri_or_none; - - $this->info['list-style'] = new HTMLPurifier_AttrDef_CSS_ListStyle($config); - - $this->info['text-transform'] = new HTMLPurifier_AttrDef_Enum( - array('capitalize', 'uppercase', 'lowercase', 'none'), false); - $this->info['color'] = new HTMLPurifier_AttrDef_CSS_Color(); - - $this->info['background-image'] = $uri_or_none; - $this->info['background-repeat'] = new HTMLPurifier_AttrDef_Enum( - array('repeat', 'repeat-x', 'repeat-y', 'no-repeat') - ); - $this->info['background-attachment'] = new HTMLPurifier_AttrDef_Enum( - array('scroll', 'fixed') - ); - $this->info['background-position'] = new HTMLPurifier_AttrDef_CSS_BackgroundPosition(); - - $border_color = - $this->info['border-top-color'] = - $this->info['border-bottom-color'] = - $this->info['border-left-color'] = - $this->info['border-right-color'] = - $this->info['background-color'] = new HTMLPurifier_AttrDef_CSS_Composite(array( - new HTMLPurifier_AttrDef_Enum(array('transparent')), - new HTMLPurifier_AttrDef_CSS_Color() - )); - - $this->info['background'] = new HTMLPurifier_AttrDef_CSS_Background($config); - - $this->info['border-color'] = new HTMLPurifier_AttrDef_CSS_Multiple($border_color); - - $border_width = - $this->info['border-top-width'] = - $this->info['border-bottom-width'] = - $this->info['border-left-width'] = - $this->info['border-right-width'] = new HTMLPurifier_AttrDef_CSS_Composite(array( - new HTMLPurifier_AttrDef_Enum(array('thin', 'medium', 'thick')), - new HTMLPurifier_AttrDef_CSS_Length('0') //disallow negative - )); - - $this->info['border-width'] = new HTMLPurifier_AttrDef_CSS_Multiple($border_width); - - $this->info['letter-spacing'] = new HTMLPurifier_AttrDef_CSS_Composite(array( - new HTMLPurifier_AttrDef_Enum(array('normal')), - new HTMLPurifier_AttrDef_CSS_Length() - )); - - $this->info['word-spacing'] = new HTMLPurifier_AttrDef_CSS_Composite(array( - new HTMLPurifier_AttrDef_Enum(array('normal')), - new HTMLPurifier_AttrDef_CSS_Length() - )); - - $this->info['font-size'] = new HTMLPurifier_AttrDef_CSS_Composite(array( - new HTMLPurifier_AttrDef_Enum(array('xx-small', 'x-small', - 'small', 'medium', 'large', 'x-large', 'xx-large', - 'larger', 'smaller')), - new HTMLPurifier_AttrDef_CSS_Percentage(), - new HTMLPurifier_AttrDef_CSS_Length() - )); - - $this->info['line-height'] = new HTMLPurifier_AttrDef_CSS_Composite(array( - new HTMLPurifier_AttrDef_Enum(array('normal')), - new HTMLPurifier_AttrDef_CSS_Number(true), // no negatives - new HTMLPurifier_AttrDef_CSS_Length('0'), - new HTMLPurifier_AttrDef_CSS_Percentage(true) - )); - - $margin = - $this->info['margin-top'] = - $this->info['margin-bottom'] = - $this->info['margin-left'] = - $this->info['margin-right'] = new HTMLPurifier_AttrDef_CSS_Composite(array( - new HTMLPurifier_AttrDef_CSS_Length(), - new HTMLPurifier_AttrDef_CSS_Percentage(), - new HTMLPurifier_AttrDef_Enum(array('auto')) - )); - - $this->info['margin'] = new HTMLPurifier_AttrDef_CSS_Multiple($margin); - - // non-negative - $padding = - $this->info['padding-top'] = - $this->info['padding-bottom'] = - $this->info['padding-left'] = - $this->info['padding-right'] = new HTMLPurifier_AttrDef_CSS_Composite(array( - new HTMLPurifier_AttrDef_CSS_Length('0'), - new HTMLPurifier_AttrDef_CSS_Percentage(true) - )); - - $this->info['padding'] = new HTMLPurifier_AttrDef_CSS_Multiple($padding); - - $this->info['text-indent'] = new HTMLPurifier_AttrDef_CSS_Composite(array( - new HTMLPurifier_AttrDef_CSS_Length(), - new HTMLPurifier_AttrDef_CSS_Percentage() - )); - - $trusted_wh = new HTMLPurifier_AttrDef_CSS_Composite(array( - new HTMLPurifier_AttrDef_CSS_Length('0'), - new HTMLPurifier_AttrDef_CSS_Percentage(true), - new HTMLPurifier_AttrDef_Enum(array('auto')) - )); - $max = $config->get('CSS.MaxImgLength'); - - $this->info['width'] = - $this->info['height'] = - $max === null ? - $trusted_wh : - new HTMLPurifier_AttrDef_Switch('img', - // For img tags: - new HTMLPurifier_AttrDef_CSS_Composite(array( - new HTMLPurifier_AttrDef_CSS_Length('0', $max), - new HTMLPurifier_AttrDef_Enum(array('auto')) - )), - // For everyone else: - $trusted_wh - ); - - $this->info['text-decoration'] = new HTMLPurifier_AttrDef_CSS_TextDecoration(); - - $this->info['font-family'] = new HTMLPurifier_AttrDef_CSS_FontFamily(); - - // this could use specialized code - $this->info['font-weight'] = new HTMLPurifier_AttrDef_Enum( - array('normal', 'bold', 'bolder', 'lighter', '100', '200', '300', - '400', '500', '600', '700', '800', '900'), false); - - // MUST be called after other font properties, as it references - // a CSSDefinition object - $this->info['font'] = new HTMLPurifier_AttrDef_CSS_Font($config); - - // same here - $this->info['border'] = - $this->info['border-bottom'] = - $this->info['border-top'] = - $this->info['border-left'] = - $this->info['border-right'] = new HTMLPurifier_AttrDef_CSS_Border($config); - - $this->info['border-collapse'] = new HTMLPurifier_AttrDef_Enum(array( - 'collapse', 'separate')); - - $this->info['caption-side'] = new HTMLPurifier_AttrDef_Enum(array( - 'top', 'bottom')); - - $this->info['table-layout'] = new HTMLPurifier_AttrDef_Enum(array( - 'auto', 'fixed')); - - $this->info['vertical-align'] = new HTMLPurifier_AttrDef_CSS_Composite(array( - new HTMLPurifier_AttrDef_Enum(array('baseline', 'sub', 'super', - 'top', 'text-top', 'middle', 'bottom', 'text-bottom')), - new HTMLPurifier_AttrDef_CSS_Length(), - new HTMLPurifier_AttrDef_CSS_Percentage() - )); - - $this->info['border-spacing'] = new HTMLPurifier_AttrDef_CSS_Multiple(new HTMLPurifier_AttrDef_CSS_Length(), 2); - - // partial support - $this->info['white-space'] = new HTMLPurifier_AttrDef_Enum(array('nowrap')); - - if ($config->get('CSS.Proprietary')) { - $this->doSetupProprietary($config); - } - - if ($config->get('CSS.AllowTricky')) { - $this->doSetupTricky($config); - } - - if ($config->get('CSS.Trusted')) { - $this->doSetupTrusted($config); - } - - $allow_important = $config->get('CSS.AllowImportant'); - // wrap all attr-defs with decorator that handles !important - foreach ($this->info as $k => $v) { - $this->info[$k] = new HTMLPurifier_AttrDef_CSS_ImportantDecorator($v, $allow_important); - } - - $this->setupConfigStuff($config); - } - - protected function doSetupProprietary($config) { - // Internet Explorer only scrollbar colors - $this->info['scrollbar-arrow-color'] = new HTMLPurifier_AttrDef_CSS_Color(); - $this->info['scrollbar-base-color'] = new HTMLPurifier_AttrDef_CSS_Color(); - $this->info['scrollbar-darkshadow-color'] = new HTMLPurifier_AttrDef_CSS_Color(); - $this->info['scrollbar-face-color'] = new HTMLPurifier_AttrDef_CSS_Color(); - $this->info['scrollbar-highlight-color'] = new HTMLPurifier_AttrDef_CSS_Color(); - $this->info['scrollbar-shadow-color'] = new HTMLPurifier_AttrDef_CSS_Color(); - - // technically not proprietary, but CSS3, and no one supports it - $this->info['opacity'] = new HTMLPurifier_AttrDef_CSS_AlphaValue(); - $this->info['-moz-opacity'] = new HTMLPurifier_AttrDef_CSS_AlphaValue(); - $this->info['-khtml-opacity'] = new HTMLPurifier_AttrDef_CSS_AlphaValue(); - - // only opacity, for now - $this->info['filter'] = new HTMLPurifier_AttrDef_CSS_Filter(); - - } - - protected function doSetupTricky($config) { - $this->info['display'] = new HTMLPurifier_AttrDef_Enum(array( - 'inline', 'block', 'list-item', 'run-in', 'compact', - 'marker', 'table', 'inline-table', 'table-row-group', - 'table-header-group', 'table-footer-group', 'table-row', - 'table-column-group', 'table-column', 'table-cell', 'table-caption', 'none' - )); - $this->info['visibility'] = new HTMLPurifier_AttrDef_Enum(array( - 'visible', 'hidden', 'collapse' - )); - $this->info['overflow'] = new HTMLPurifier_AttrDef_Enum(array('visible', 'hidden', 'auto', 'scroll')); - } - - protected function doSetupTrusted($config) { - $this->info['position'] = new HTMLPurifier_AttrDef_Enum(array( - 'static', 'relative', 'absolute', 'fixed' - )); - $this->info['top'] = - $this->info['left'] = - $this->info['right'] = - $this->info['bottom'] = new HTMLPurifier_AttrDef_CSS_Composite(array( - new HTMLPurifier_AttrDef_CSS_Length(), - new HTMLPurifier_AttrDef_CSS_Percentage(), - new HTMLPurifier_AttrDef_Enum(array('auto')), - )); - $this->info['z-index'] = new HTMLPurifier_AttrDef_CSS_Composite(array( - new HTMLPurifier_AttrDef_Integer(), - new HTMLPurifier_AttrDef_Enum(array('auto')), - )); - } - - /** - * Performs extra config-based processing. Based off of - * HTMLPurifier_HTMLDefinition. - * @todo Refactor duplicate elements into common class (probably using - * composition, not inheritance). - */ - protected function setupConfigStuff($config) { - - // setup allowed elements - $support = "(for information on implementing this, see the ". - "support forums) "; - $allowed_properties = $config->get('CSS.AllowedProperties'); - if ($allowed_properties !== null) { - foreach ($this->info as $name => $d) { - if(!isset($allowed_properties[$name])) unset($this->info[$name]); - unset($allowed_properties[$name]); - } - // emit errors - foreach ($allowed_properties as $name => $d) { - // :TODO: Is this htmlspecialchars() call really necessary? - $name = htmlspecialchars($name); - trigger_error("Style attribute '$name' is not supported $support", E_USER_WARNING); - } - } - - $forbidden_properties = $config->get('CSS.ForbiddenProperties'); - if ($forbidden_properties !== null) { - foreach ($this->info as $name => $d) { - if (isset($forbidden_properties[$name])) { - unset($this->info[$name]); - } - } - } - - } -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef.php deleted file mode 100644 index c5d5216..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef.php +++ /dev/null @@ -1,48 +0,0 @@ -elements; - } - - /** - * Validates nodes according to definition and returns modification. - * - * @param $tokens_of_children Array of HTMLPurifier_Token - * @param $config HTMLPurifier_Config object - * @param $context HTMLPurifier_Context object - * @return bool true to leave nodes as is - * @return bool false to remove parent node - * @return array of replacement child tokens - */ - abstract public function validateChildren($tokens_of_children, $config, $context); -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/Chameleon.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/Chameleon.php deleted file mode 100644 index 15c364e..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/Chameleon.php +++ /dev/null @@ -1,48 +0,0 @@ -inline = new HTMLPurifier_ChildDef_Optional($inline); - $this->block = new HTMLPurifier_ChildDef_Optional($block); - $this->elements = $this->block->elements; - } - - public function validateChildren($tokens_of_children, $config, $context) { - if ($context->get('IsInline') === false) { - return $this->block->validateChildren( - $tokens_of_children, $config, $context); - } else { - return $this->inline->validateChildren( - $tokens_of_children, $config, $context); - } - } -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/Custom.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/Custom.php deleted file mode 100644 index b68047b..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/Custom.php +++ /dev/null @@ -1,90 +0,0 @@ -dtd_regex = $dtd_regex; - $this->_compileRegex(); - } - /** - * Compiles the PCRE regex from a DTD regex ($dtd_regex to $_pcre_regex) - */ - protected function _compileRegex() { - $raw = str_replace(' ', '', $this->dtd_regex); - if ($raw{0} != '(') { - $raw = "($raw)"; - } - $el = '[#a-zA-Z0-9_.-]+'; - $reg = $raw; - - // COMPLICATED! AND MIGHT BE BUGGY! I HAVE NO CLUE WHAT I'M - // DOING! Seriously: if there's problems, please report them. - - // collect all elements into the $elements array - preg_match_all("/$el/", $reg, $matches); - foreach ($matches[0] as $match) { - $this->elements[$match] = true; - } - - // setup all elements as parentheticals with leading commas - $reg = preg_replace("/$el/", '(,\\0)', $reg); - - // remove commas when they were not solicited - $reg = preg_replace("/([^,(|]\(+),/", '\\1', $reg); - - // remove all non-paranthetical commas: they are handled by first regex - $reg = preg_replace("/,\(/", '(', $reg); - - $this->_pcre_regex = $reg; - } - public function validateChildren($tokens_of_children, $config, $context) { - $list_of_children = ''; - $nesting = 0; // depth into the nest - foreach ($tokens_of_children as $token) { - if (!empty($token->is_whitespace)) continue; - - $is_child = ($nesting == 0); // direct - - if ($token instanceof HTMLPurifier_Token_Start) { - $nesting++; - } elseif ($token instanceof HTMLPurifier_Token_End) { - $nesting--; - } - - if ($is_child) { - $list_of_children .= $token->name . ','; - } - } - // add leading comma to deal with stray comma declarations - $list_of_children = ',' . rtrim($list_of_children, ','); - $okay = - preg_match( - '/^,?'.$this->_pcre_regex.'$/', - $list_of_children - ); - - return (bool) $okay; - } -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/Empty.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/Empty.php deleted file mode 100644 index 13171f6..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/Empty.php +++ /dev/null @@ -1,20 +0,0 @@ -whitespace) return $tokens_of_children; - else return array(); - } - return $result; - } -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/Required.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/Required.php deleted file mode 100644 index 4889f24..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/Required.php +++ /dev/null @@ -1,117 +0,0 @@ - $x) { - $elements[$i] = true; - if (empty($i)) unset($elements[$i]); // remove blank - } - } - $this->elements = $elements; - } - public $allow_empty = false; - public $type = 'required'; - public function validateChildren($tokens_of_children, $config, $context) { - // Flag for subclasses - $this->whitespace = false; - - // if there are no tokens, delete parent node - if (empty($tokens_of_children)) return false; - - // the new set of children - $result = array(); - - // current depth into the nest - $nesting = 0; - - // whether or not we're deleting a node - $is_deleting = false; - - // whether or not parsed character data is allowed - // this controls whether or not we silently drop a tag - // or generate escaped HTML from it - $pcdata_allowed = isset($this->elements['#PCDATA']); - - // a little sanity check to make sure it's not ALL whitespace - $all_whitespace = true; - - // some configuration - $escape_invalid_children = $config->get('Core.EscapeInvalidChildren'); - - // generator - $gen = new HTMLPurifier_Generator($config, $context); - - foreach ($tokens_of_children as $token) { - if (!empty($token->is_whitespace)) { - $result[] = $token; - continue; - } - $all_whitespace = false; // phew, we're not talking about whitespace - - $is_child = ($nesting == 0); - - if ($token instanceof HTMLPurifier_Token_Start) { - $nesting++; - } elseif ($token instanceof HTMLPurifier_Token_End) { - $nesting--; - } - - if ($is_child) { - $is_deleting = false; - if (!isset($this->elements[$token->name])) { - $is_deleting = true; - if ($pcdata_allowed && $token instanceof HTMLPurifier_Token_Text) { - $result[] = $token; - } elseif ($pcdata_allowed && $escape_invalid_children) { - $result[] = new HTMLPurifier_Token_Text( - $gen->generateFromToken($token) - ); - } - continue; - } - } - if (!$is_deleting || ($pcdata_allowed && $token instanceof HTMLPurifier_Token_Text)) { - $result[] = $token; - } elseif ($pcdata_allowed && $escape_invalid_children) { - $result[] = - new HTMLPurifier_Token_Text( - $gen->generateFromToken($token) - ); - } else { - // drop silently - } - } - if (empty($result)) return false; - if ($all_whitespace) { - $this->whitespace = true; - return false; - } - if ($tokens_of_children == $result) return true; - return $result; - } -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/StrictBlockquote.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/StrictBlockquote.php deleted file mode 100644 index dfae8a6..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/StrictBlockquote.php +++ /dev/null @@ -1,88 +0,0 @@ -init($config); - return $this->fake_elements; - } - - public function validateChildren($tokens_of_children, $config, $context) { - - $this->init($config); - - // trick the parent class into thinking it allows more - $this->elements = $this->fake_elements; - $result = parent::validateChildren($tokens_of_children, $config, $context); - $this->elements = $this->real_elements; - - if ($result === false) return array(); - if ($result === true) $result = $tokens_of_children; - - $def = $config->getHTMLDefinition(); - $block_wrap_start = new HTMLPurifier_Token_Start($def->info_block_wrapper); - $block_wrap_end = new HTMLPurifier_Token_End( $def->info_block_wrapper); - $is_inline = false; - $depth = 0; - $ret = array(); - - // assuming that there are no comment tokens - foreach ($result as $i => $token) { - $token = $result[$i]; - // ifs are nested for readability - if (!$is_inline) { - if (!$depth) { - if ( - ($token instanceof HTMLPurifier_Token_Text && !$token->is_whitespace) || - (!$token instanceof HTMLPurifier_Token_Text && !isset($this->elements[$token->name])) - ) { - $is_inline = true; - $ret[] = $block_wrap_start; - } - } - } else { - if (!$depth) { - // starting tokens have been inline text / empty - if ($token instanceof HTMLPurifier_Token_Start || $token instanceof HTMLPurifier_Token_Empty) { - if (isset($this->elements[$token->name])) { - // ended - $ret[] = $block_wrap_end; - $is_inline = false; - } - } - } - } - $ret[] = $token; - if ($token instanceof HTMLPurifier_Token_Start) $depth++; - if ($token instanceof HTMLPurifier_Token_End) $depth--; - } - if ($is_inline) $ret[] = $block_wrap_end; - return $ret; - } - - private function init($config) { - if (!$this->init) { - $def = $config->getHTMLDefinition(); - // allow all inline elements - $this->real_elements = $this->elements; - $this->fake_elements = $def->info_content_sets['Flow']; - $this->fake_elements['#PCDATA'] = true; - $this->init = true; - } - } -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/Table.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/Table.php deleted file mode 100644 index 34f0227..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ChildDef/Table.php +++ /dev/null @@ -1,142 +0,0 @@ - true, 'tbody' => true, 'thead' => true, - 'tfoot' => true, 'caption' => true, 'colgroup' => true, 'col' => true); - public function __construct() {} - public function validateChildren($tokens_of_children, $config, $context) { - if (empty($tokens_of_children)) return false; - - // this ensures that the loop gets run one last time before closing - // up. It's a little bit of a hack, but it works! Just make sure you - // get rid of the token later. - $tokens_of_children[] = false; - - // only one of these elements is allowed in a table - $caption = false; - $thead = false; - $tfoot = false; - - // as many of these as you want - $cols = array(); - $content = array(); - - $nesting = 0; // current depth so we can determine nodes - $is_collecting = false; // are we globbing together tokens to package - // into one of the collectors? - $collection = array(); // collected nodes - $tag_index = 0; // the first node might be whitespace, - // so this tells us where the start tag is - - foreach ($tokens_of_children as $token) { - $is_child = ($nesting == 0); - - if ($token === false) { - // terminating sequence started - } elseif ($token instanceof HTMLPurifier_Token_Start) { - $nesting++; - } elseif ($token instanceof HTMLPurifier_Token_End) { - $nesting--; - } - - // handle node collection - if ($is_collecting) { - if ($is_child) { - // okay, let's stash the tokens away - // first token tells us the type of the collection - switch ($collection[$tag_index]->name) { - case 'tr': - case 'tbody': - $content[] = $collection; - break; - case 'caption': - if ($caption !== false) break; - $caption = $collection; - break; - case 'thead': - case 'tfoot': - // access the appropriate variable, $thead or $tfoot - $var = $collection[$tag_index]->name; - if ($$var === false) { - $$var = $collection; - } else { - // transmutate the first and less entries into - // tbody tags, and then put into content - $collection[$tag_index]->name = 'tbody'; - $collection[count($collection)-1]->name = 'tbody'; - $content[] = $collection; - } - break; - case 'colgroup': - $cols[] = $collection; - break; - } - $collection = array(); - $is_collecting = false; - $tag_index = 0; - } else { - // add the node to the collection - $collection[] = $token; - } - } - - // terminate - if ($token === false) break; - - if ($is_child) { - // determine what we're dealing with - if ($token->name == 'col') { - // the only empty tag in the possie, we can handle it - // immediately - $cols[] = array_merge($collection, array($token)); - $collection = array(); - $tag_index = 0; - continue; - } - switch($token->name) { - case 'caption': - case 'colgroup': - case 'thead': - case 'tfoot': - case 'tbody': - case 'tr': - $is_collecting = true; - $collection[] = $token; - continue; - default: - if (!empty($token->is_whitespace)) { - $collection[] = $token; - $tag_index++; - } - continue; - } - } - } - - if (empty($content)) return false; - - $ret = array(); - if ($caption !== false) $ret = array_merge($ret, $caption); - if ($cols !== false) foreach ($cols as $token_array) $ret = array_merge($ret, $token_array); - if ($thead !== false) $ret = array_merge($ret, $thead); - if ($tfoot !== false) $ret = array_merge($ret, $tfoot); - foreach ($content as $token_array) $ret = array_merge($ret, $token_array); - if (!empty($collection) && $is_collecting == false){ - // grab the trailing space - $ret = array_merge($ret, $collection); - } - - array_pop($tokens_of_children); // remove phantom token - - return ($ret === $tokens_of_children) ? true : $ret; - - } -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Config.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Config.php deleted file mode 100644 index c6f2cea..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Config.php +++ /dev/null @@ -1,746 +0,0 @@ -defaultPlist; - $this->plist = new HTMLPurifier_PropertyList($parent); - $this->def = $definition; // keep a copy around for checking - $this->parser = new HTMLPurifier_VarParser_Flexible(); - } - - /** - * Convenience constructor that creates a config object based on a mixed var - * @param mixed $config Variable that defines the state of the config - * object. Can be: a HTMLPurifier_Config() object, - * an array of directives based on loadArray(), - * or a string filename of an ini file. - * @param HTMLPurifier_ConfigSchema Schema object - * @return Configured HTMLPurifier_Config object - */ - public static function create($config, $schema = null) - { - if ($config instanceof HTMLPurifier_Config) { - // pass-through - return $config; - } - if (!$schema) { - $ret = HTMLPurifier_Config::createDefault(); - } else { - $ret = new HTMLPurifier_Config($schema); - } - if (is_string($config)) $ret->loadIni($config); - elseif (is_array($config)) $ret->loadArray($config); - return $ret; - } - - /** - * Creates a new config object that inherits from a previous one. - * @param HTMLPurifier_Config $config Configuration object to inherit - * from. - * @return HTMLPurifier_Config object with $config as its parent. - */ - public static function inherit(HTMLPurifier_Config $config) - { - return new HTMLPurifier_Config($config->def, $config->plist); - } - - /** - * Convenience constructor that creates a default configuration object. - * @return Default HTMLPurifier_Config object. - */ - public static function createDefault() - { - $definition = HTMLPurifier_ConfigSchema::instance(); - $config = new HTMLPurifier_Config($definition); - return $config; - } - - /** - * Retreives a value from the configuration. - * @param $key String key - */ - public function get($key, $a = null) - { - if ($a !== null) { - $this->triggerError("Using deprecated API: use \$config->get('$key.$a') instead", E_USER_WARNING); - $key = "$key.$a"; - } - if (!$this->finalized) $this->autoFinalize(); - if (!isset($this->def->info[$key])) { - // can't add % due to SimpleTest bug - $this->triggerError('Cannot retrieve value of undefined directive ' . htmlspecialchars($key), - E_USER_WARNING); - return; - } - if (isset($this->def->info[$key]->isAlias)) { - $d = $this->def->info[$key]; - $this->triggerError('Cannot get value from aliased directive, use real name ' . $d->key, - E_USER_ERROR); - return; - } - if ($this->lock) { - list($ns) = explode('.', $key); - if ($ns !== $this->lock) { - $this->triggerError('Cannot get value of namespace ' . $ns . ' when lock for ' . $this->lock . ' is active, this probably indicates a Definition setup method is accessing directives that are not within its namespace', E_USER_ERROR); - return; - } - } - return $this->plist->get($key); - } - - /** - * Retreives an array of directives to values from a given namespace - * @param $namespace String namespace - */ - public function getBatch($namespace) - { - if (!$this->finalized) $this->autoFinalize(); - $full = $this->getAll(); - if (!isset($full[$namespace])) { - $this->triggerError('Cannot retrieve undefined namespace ' . htmlspecialchars($namespace), - E_USER_WARNING); - return; - } - return $full[$namespace]; - } - - /** - * Returns a md5 signature of a segment of the configuration object - * that uniquely identifies that particular configuration - * @note Revision is handled specially and is removed from the batch - * before processing! - * @param $namespace Namespace to get serial for - */ - public function getBatchSerial($namespace) - { - if (empty($this->serials[$namespace])) { - $batch = $this->getBatch($namespace); - unset($batch['DefinitionRev']); - $this->serials[$namespace] = md5(serialize($batch)); - } - return $this->serials[$namespace]; - } - - /** - * Returns a md5 signature for the entire configuration object - * that uniquely identifies that particular configuration - */ - public function getSerial() - { - if (empty($this->serial)) { - $this->serial = md5(serialize($this->getAll())); - } - return $this->serial; - } - - /** - * Retrieves all directives, organized by namespace - * @warning This is a pretty inefficient function, avoid if you can - */ - public function getAll() - { - if (!$this->finalized) $this->autoFinalize(); - $ret = array(); - foreach ($this->plist->squash() as $name => $value) { - list($ns, $key) = explode('.', $name, 2); - $ret[$ns][$key] = $value; - } - return $ret; - } - - /** - * Sets a value to configuration. - * @param $key String key - * @param $value Mixed value - */ - public function set($key, $value, $a = null) - { - if (strpos($key, '.') === false) { - $namespace = $key; - $directive = $value; - $value = $a; - $key = "$key.$directive"; - $this->triggerError("Using deprecated API: use \$config->set('$key', ...) instead", E_USER_NOTICE); - } else { - list($namespace) = explode('.', $key); - } - if ($this->isFinalized('Cannot set directive after finalization')) return; - if (!isset($this->def->info[$key])) { - $this->triggerError('Cannot set undefined directive ' . htmlspecialchars($key) . ' to value', - E_USER_WARNING); - return; - } - $def = $this->def->info[$key]; - - if (isset($def->isAlias)) { - if ($this->aliasMode) { - $this->triggerError('Double-aliases not allowed, please fix ' . - 'ConfigSchema bug with' . $key, E_USER_ERROR); - return; - } - $this->aliasMode = true; - $this->set($def->key, $value); - $this->aliasMode = false; - $this->triggerError("$key is an alias, preferred directive name is {$def->key}", E_USER_NOTICE); - return; - } - - // Raw type might be negative when using the fully optimized form - // of stdclass, which indicates allow_null == true - $rtype = is_int($def) ? $def : $def->type; - if ($rtype < 0) { - $type = -$rtype; - $allow_null = true; - } else { - $type = $rtype; - $allow_null = isset($def->allow_null); - } - - try { - $value = $this->parser->parse($value, $type, $allow_null); - } catch (HTMLPurifier_VarParserException $e) { - $this->triggerError('Value for ' . $key . ' is of invalid type, should be ' . HTMLPurifier_VarParser::getTypeName($type), E_USER_WARNING); - return; - } - if (is_string($value) && is_object($def)) { - // resolve value alias if defined - if (isset($def->aliases[$value])) { - $value = $def->aliases[$value]; - } - // check to see if the value is allowed - if (isset($def->allowed) && !isset($def->allowed[$value])) { - $this->triggerError('Value not supported, valid values are: ' . - $this->_listify($def->allowed), E_USER_WARNING); - return; - } - } - $this->plist->set($key, $value); - - // reset definitions if the directives they depend on changed - // this is a very costly process, so it's discouraged - // with finalization - if ($namespace == 'HTML' || $namespace == 'CSS' || $namespace == 'URI') { - $this->definitions[$namespace] = null; - } - - $this->serials[$namespace] = false; - } - - /** - * Convenience function for error reporting - */ - private function _listify($lookup) - { - $list = array(); - foreach ($lookup as $name => $b) $list[] = $name; - return implode(', ', $list); - } - - /** - * Retrieves object reference to the HTML definition. - * @param $raw Return a copy that has not been setup yet. Must be - * called before it's been setup, otherwise won't work. - * @param $optimized If true, this method may return null, to - * indicate that a cached version of the modified - * definition object is available and no further edits - * are necessary. Consider using - * maybeGetRawHTMLDefinition, which is more explicitly - * named, instead. - */ - public function getHTMLDefinition($raw = false, $optimized = false) - { - return $this->getDefinition('HTML', $raw, $optimized); - } - - /** - * Retrieves object reference to the CSS definition - * @param $raw Return a copy that has not been setup yet. Must be - * called before it's been setup, otherwise won't work. - * @param $optimized If true, this method may return null, to - * indicate that a cached version of the modified - * definition object is available and no further edits - * are necessary. Consider using - * maybeGetRawCSSDefinition, which is more explicitly - * named, instead. - */ - public function getCSSDefinition($raw = false, $optimized = false) - { - return $this->getDefinition('CSS', $raw, $optimized); - } - - /** - * Retrieves object reference to the URI definition - * @param $raw Return a copy that has not been setup yet. Must be - * called before it's been setup, otherwise won't work. - * @param $optimized If true, this method may return null, to - * indicate that a cached version of the modified - * definition object is available and no further edits - * are necessary. Consider using - * maybeGetRawURIDefinition, which is more explicitly - * named, instead. - */ - public function getURIDefinition($raw = false, $optimized = false) - { - return $this->getDefinition('URI', $raw, $optimized); - } - - /** - * Retrieves a definition - * @param $type Type of definition: HTML, CSS, etc - * @param $raw Whether or not definition should be returned raw - * @param $optimized Only has an effect when $raw is true. Whether - * or not to return null if the result is already present in - * the cache. This is off by default for backwards - * compatibility reasons, but you need to do things this - * way in order to ensure that caching is done properly. - * Check out enduser-customize.html for more details. - * We probably won't ever change this default, as much as the - * maybe semantics is the "right thing to do." - */ - public function getDefinition($type, $raw = false, $optimized = false) - { - if ($optimized && !$raw) { - throw new HTMLPurifier_Exception("Cannot set optimized = true when raw = false"); - } - if (!$this->finalized) $this->autoFinalize(); - // temporarily suspend locks, so we can handle recursive definition calls - $lock = $this->lock; - $this->lock = null; - $factory = HTMLPurifier_DefinitionCacheFactory::instance(); - $cache = $factory->create($type, $this); - $this->lock = $lock; - if (!$raw) { - // full definition - // --------------- - // check if definition is in memory - if (!empty($this->definitions[$type])) { - $def = $this->definitions[$type]; - // check if the definition is setup - if ($def->setup) { - return $def; - } else { - $def->setup($this); - if ($def->optimized) $cache->add($def, $this); - return $def; - } - } - // check if definition is in cache - $def = $cache->get($this); - if ($def) { - // definition in cache, save to memory and return it - $this->definitions[$type] = $def; - return $def; - } - // initialize it - $def = $this->initDefinition($type); - // set it up - $this->lock = $type; - $def->setup($this); - $this->lock = null; - // save in cache - $cache->add($def, $this); - // return it - return $def; - } else { - // raw definition - // -------------- - // check preconditions - $def = null; - if ($optimized) { - if (is_null($this->get($type . '.DefinitionID'))) { - // fatally error out if definition ID not set - throw new HTMLPurifier_Exception("Cannot retrieve raw version without specifying %$type.DefinitionID"); - } - } - if (!empty($this->definitions[$type])) { - $def = $this->definitions[$type]; - if ($def->setup && !$optimized) { - $extra = $this->chatty ? " (try moving this code block earlier in your initialization)" : ""; - throw new HTMLPurifier_Exception("Cannot retrieve raw definition after it has already been setup" . $extra); - } - if ($def->optimized === null) { - $extra = $this->chatty ? " (try flushing your cache)" : ""; - throw new HTMLPurifier_Exception("Optimization status of definition is unknown" . $extra); - } - if ($def->optimized !== $optimized) { - $msg = $optimized ? "optimized" : "unoptimized"; - $extra = $this->chatty ? " (this backtrace is for the first inconsistent call, which was for a $msg raw definition)" : ""; - throw new HTMLPurifier_Exception("Inconsistent use of optimized and unoptimized raw definition retrievals" . $extra); - } - } - // check if definition was in memory - if ($def) { - if ($def->setup) { - // invariant: $optimized === true (checked above) - return null; - } else { - return $def; - } - } - // if optimized, check if definition was in cache - // (because we do the memory check first, this formulation - // is prone to cache slamming, but I think - // guaranteeing that either /all/ of the raw - // setup code or /none/ of it is run is more important.) - if ($optimized) { - // This code path only gets run once; once we put - // something in $definitions (which is guaranteed by the - // trailing code), we always short-circuit above. - $def = $cache->get($this); - if ($def) { - // save the full definition for later, but don't - // return it yet - $this->definitions[$type] = $def; - return null; - } - } - // check invariants for creation - if (!$optimized) { - if (!is_null($this->get($type . '.DefinitionID'))) { - if ($this->chatty) { - $this->triggerError("Due to a documentation error in previous version of HTML Purifier, your definitions are not being cached. If this is OK, you can remove the %$type.DefinitionRev and %$type.DefinitionID declaration. Otherwise, modify your code to use maybeGetRawDefinition, and test if the returned value is null before making any edits (if it is null, that means that a cached version is available, and no raw operations are necessary). See Customize for more details", E_USER_WARNING); - } else { - $this->triggerError("Useless DefinitionID declaration", E_USER_WARNING); - } - } - } - // initialize it - $def = $this->initDefinition($type); - $def->optimized = $optimized; - return $def; - } - throw new HTMLPurifier_Exception("The impossible happened!"); - } - - private function initDefinition($type) - { - // quick checks failed, let's create the object - if ($type == 'HTML') { - $def = new HTMLPurifier_HTMLDefinition(); - } elseif ($type == 'CSS') { - $def = new HTMLPurifier_CSSDefinition(); - } elseif ($type == 'URI') { - $def = new HTMLPurifier_URIDefinition(); - } else { - throw new HTMLPurifier_Exception("Definition of $type type not supported"); - } - $this->definitions[$type] = $def; - return $def; - } - - public function maybeGetRawDefinition($name) - { - return $this->getDefinition($name, true, true); - } - - public function maybeGetRawHTMLDefinition() - { - return $this->getDefinition('HTML', true, true); - } - - public function maybeGetRawCSSDefinition() - { - return $this->getDefinition('CSS', true, true); - } - - public function maybeGetRawURIDefinition() - { - return $this->getDefinition('URI', true, true); - } - - /** - * Loads configuration values from an array with the following structure: - * Namespace.Directive => Value - * @param $config_array Configuration associative array - */ - public function loadArray($config_array) - { - if ($this->isFinalized('Cannot load directives after finalization')) return; - foreach ($config_array as $key => $value) { - $key = str_replace('_', '.', $key); - if (strpos($key, '.') !== false) { - $this->set($key, $value); - } else { - $namespace = $key; - $namespace_values = $value; - foreach ($namespace_values as $directive => $value) { - $this->set($namespace . '.' . $directive, $value); - } - } - } - } - - /** - * Returns a list of array(namespace, directive) for all directives - * that are allowed in a web-form context as per an allowed - * namespaces/directives list. - * @param $allowed List of allowed namespaces/directives - */ - public static function getAllowedDirectivesForForm($allowed, $schema = null) - { - if (!$schema) { - $schema = HTMLPurifier_ConfigSchema::instance(); - } - if ($allowed !== true) { - if (is_string($allowed)) $allowed = array($allowed); - $allowed_ns = array(); - $allowed_directives = array(); - $blacklisted_directives = array(); - foreach ($allowed as $ns_or_directive) { - if (strpos($ns_or_directive, '.') !== false) { - // directive - if ($ns_or_directive[0] == '-') { - $blacklisted_directives[substr($ns_or_directive, 1)] = true; - } else { - $allowed_directives[$ns_or_directive] = true; - } - } else { - // namespace - $allowed_ns[$ns_or_directive] = true; - } - } - } - $ret = array(); - foreach ($schema->info as $key => $def) { - list($ns, $directive) = explode('.', $key, 2); - if ($allowed !== true) { - if (isset($blacklisted_directives["$ns.$directive"])) continue; - if (!isset($allowed_directives["$ns.$directive"]) && !isset($allowed_ns[$ns])) continue; - } - if (isset($def->isAlias)) continue; - if ($directive == 'DefinitionID' || $directive == 'DefinitionRev') continue; - $ret[] = array($ns, $directive); - } - return $ret; - } - - /** - * Loads configuration values from $_GET/$_POST that were posted - * via ConfigForm - * @param $array $_GET or $_POST array to import - * @param $index Index/name that the config variables are in - * @param $allowed List of allowed namespaces/directives - * @param $mq_fix Boolean whether or not to enable magic quotes fix - * @param $schema Instance of HTMLPurifier_ConfigSchema to use, if not global copy - */ - public static function loadArrayFromForm($array, $index = false, $allowed = true, $mq_fix = true, $schema = null) - { - $ret = HTMLPurifier_Config::prepareArrayFromForm($array, $index, $allowed, $mq_fix, $schema); - $config = HTMLPurifier_Config::create($ret, $schema); - return $config; - } - - /** - * Merges in configuration values from $_GET/$_POST to object. NOT STATIC. - * @note Same parameters as loadArrayFromForm - */ - public function mergeArrayFromForm($array, $index = false, $allowed = true, $mq_fix = true) - { - $ret = HTMLPurifier_Config::prepareArrayFromForm($array, $index, $allowed, $mq_fix, $this->def); - $this->loadArray($ret); - } - - /** - * Prepares an array from a form into something usable for the more - * strict parts of HTMLPurifier_Config - */ - public static function prepareArrayFromForm($array, $index = false, $allowed = true, $mq_fix = true, $schema = null) - { - if ($index !== false) $array = (isset($array[$index]) && is_array($array[$index])) ? $array[$index] : array(); - $mq = $mq_fix && function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc(); - - $allowed = HTMLPurifier_Config::getAllowedDirectivesForForm($allowed, $schema); - $ret = array(); - foreach ($allowed as $key) { - list($ns, $directive) = $key; - $skey = "$ns.$directive"; - if (!empty($array["Null_$skey"])) { - $ret[$ns][$directive] = null; - continue; - } - if (!isset($array[$skey])) continue; - $value = $mq ? stripslashes($array[$skey]) : $array[$skey]; - $ret[$ns][$directive] = $value; - } - return $ret; - } - - /** - * Loads configuration values from an ini file - * @param $filename Name of ini file - */ - public function loadIni($filename) - { - if ($this->isFinalized('Cannot load directives after finalization')) return; - if (function_exists('parse_ini_file')) { - $array = parse_ini_file($filename, true); - } else { - $fileContent = file_get_contents($filename); - $array = parse_ini_string($fileContent, true); - } - - $this->loadArray($array); - } - - /** - * Checks whether or not the configuration object is finalized. - * @param $error String error message, or false for no error - */ - public function isFinalized($error = false) - { - if ($this->finalized && $error) { - $this->triggerError($error, E_USER_ERROR); - } - return $this->finalized; - } - - /** - * Finalizes configuration only if auto finalize is on and not - * already finalized - */ - public function autoFinalize() - { - if ($this->autoFinalize) { - $this->finalize(); - } else { - $this->plist->squash(true); - } - } - - /** - * Finalizes a configuration object, prohibiting further change - */ - public function finalize() - { - $this->finalized = true; - unset($this->parser); - } - - /** - * Produces a nicely formatted error message by supplying the - * stack frame information OUTSIDE of HTMLPurifier_Config. - */ - protected function triggerError($msg, $no) - { - // determine previous stack frame - $extra = ''; - if ($this->chatty) { - $trace = debug_backtrace(); - // zip(tail(trace), trace) -- but PHP is not Haskell har har - for ($i = 0, $c = count($trace); $i < $c - 1; $i++) { - if ($trace[$i + 1]['class'] === 'HTMLPurifier_Config') { - continue; - } - $frame = $trace[$i]; - $extra = " invoked on line {$frame['line']} in file {$frame['file']}"; - break; - } - } - trigger_error($msg . $extra, $no); - } - - /** - * Returns a serialized form of the configuration object that can - * be reconstituted. - */ - public function serialize() - { - $this->getDefinition('HTML'); - $this->getDefinition('CSS'); - $this->getDefinition('URI'); - return serialize($this); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigDef.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigDef.php deleted file mode 100644 index fe35e7a..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigDef.php +++ /dev/null @@ -1,9 +0,0 @@ -type = $type; - if ( $allow_null !== null) $this->allow_null = $allow_null; - if ( $allowed !== null) $this->allowed = $allowed; - if ( $aliases !== null) $this->aliases = $aliases; - } - - /** - * Allowed type of the directive. Values are: - * - string - * - istring (case insensitive string) - * - int - * - float - * - bool - * - lookup (array of value => true) - * - list (regular numbered index array) - * - hash (array of key => value) - * - mixed (anything goes) - */ - public $type = 'mixed'; - - /** - * Is null allowed? Has no effect for mixed type. - * @bool - */ - public $allow_null = false; - - /** - * Lookup table of allowed values of the element, bool true if all allowed. - */ - public $allowed = true; - - /** - * Hash of value aliases, i.e. values that are equivalent. - */ - public $aliases = array(); - -} - diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigDef/DirectiveAlias.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigDef/DirectiveAlias.php deleted file mode 100644 index 98b8edd..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigDef/DirectiveAlias.php +++ /dev/null @@ -1,24 +0,0 @@ -namespace = $namespace; - $this->name = $name; - } -} - diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigDef/Namespace.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigDef/Namespace.php deleted file mode 100644 index f282065..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigDef/Namespace.php +++ /dev/null @@ -1,10 +0,0 @@ - array( - * 'Directive' => new stdclass(), - * ) - * ) - * - * The stdclass may have the following properties: - * - * - If isAlias isn't set: - * - type: Integer type of directive, see HTMLPurifier_VarParser for definitions - * - allow_null: If set, this directive allows null values - * - aliases: If set, an associative array of value aliases to real values - * - allowed: If set, a lookup array of allowed (string) values - * - If isAlias is set: - * - namespace: Namespace this directive aliases to - * - name: Directive name this directive aliases to - * - * In certain degenerate cases, stdclass will actually be an integer. In - * that case, the value is equivalent to an stdclass with the type - * property set to the integer. If the integer is negative, type is - * equal to the absolute value of integer, and allow_null is true. - * - * This class is friendly with HTMLPurifier_Config. If you need introspection - * about the schema, you're better of using the ConfigSchema_Interchange, - * which uses more memory but has much richer information. - */ - public $info = array(); - - /** - * Application-wide singleton - */ - static protected $singleton; - - public function __construct() { - $this->defaultPlist = new HTMLPurifier_PropertyList(); - } - - /** - * Unserializes the default ConfigSchema. - */ - public static function makeFromSerial() { - $contents = file_get_contents(HTMLPURIFIER_PREFIX . '/HTMLPurifier/ConfigSchema/schema.ser'); - $r = unserialize($contents); - if (!$r) { - $hash = sha1($contents); - trigger_error("Unserialization of configuration schema failed, sha1 of file was $hash", E_USER_ERROR); - } - return $r; - } - - /** - * Retrieves an instance of the application-wide configuration definition. - */ - public static function instance($prototype = null) { - if ($prototype !== null) { - HTMLPurifier_ConfigSchema::$singleton = $prototype; - } elseif (HTMLPurifier_ConfigSchema::$singleton === null || $prototype === true) { - HTMLPurifier_ConfigSchema::$singleton = HTMLPurifier_ConfigSchema::makeFromSerial(); - } - return HTMLPurifier_ConfigSchema::$singleton; - } - - /** - * Defines a directive for configuration - * @warning Will fail of directive's namespace is defined. - * @warning This method's signature is slightly different from the legacy - * define() static method! Beware! - * @param $namespace Namespace the directive is in - * @param $name Key of directive - * @param $default Default value of directive - * @param $type Allowed type of the directive. See - * HTMLPurifier_DirectiveDef::$type for allowed values - * @param $allow_null Whether or not to allow null values - */ - public function add($key, $default, $type, $allow_null) { - $obj = new stdclass(); - $obj->type = is_int($type) ? $type : HTMLPurifier_VarParser::$types[$type]; - if ($allow_null) $obj->allow_null = true; - $this->info[$key] = $obj; - $this->defaults[$key] = $default; - $this->defaultPlist->set($key, $default); - } - - /** - * Defines a directive value alias. - * - * Directive value aliases are convenient for developers because it lets - * them set a directive to several values and get the same result. - * @param $namespace Directive's namespace - * @param $name Name of Directive - * @param $aliases Hash of aliased values to the real alias - */ - public function addValueAliases($key, $aliases) { - if (!isset($this->info[$key]->aliases)) { - $this->info[$key]->aliases = array(); - } - foreach ($aliases as $alias => $real) { - $this->info[$key]->aliases[$alias] = $real; - } - } - - /** - * Defines a set of allowed values for a directive. - * @warning This is slightly different from the corresponding static - * method definition. - * @param $namespace Namespace of directive - * @param $name Name of directive - * @param $allowed Lookup array of allowed values - */ - public function addAllowedValues($key, $allowed) { - $this->info[$key]->allowed = $allowed; - } - - /** - * Defines a directive alias for backwards compatibility - * @param $namespace - * @param $name Directive that will be aliased - * @param $new_namespace - * @param $new_name Directive that the alias will be to - */ - public function addAlias($key, $new_key) { - $obj = new stdclass; - $obj->key = $new_key; - $obj->isAlias = true; - $this->info[$key] = $obj; - } - - /** - * Replaces any stdclass that only has the type property with type integer. - */ - public function postProcess() { - foreach ($this->info as $key => $v) { - if (count((array) $v) == 1) { - $this->info[$key] = $v->type; - } elseif (count((array) $v) == 2 && isset($v->allow_null)) { - $this->info[$key] = -$v->type; - } - } - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php deleted file mode 100644 index c05668a..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php +++ /dev/null @@ -1,44 +0,0 @@ -directives as $d) { - $schema->add( - $d->id->key, - $d->default, - $d->type, - $d->typeAllowsNull - ); - if ($d->allowed !== null) { - $schema->addAllowedValues( - $d->id->key, - $d->allowed - ); - } - foreach ($d->aliases as $alias) { - $schema->addAlias( - $alias->key, - $d->id->key - ); - } - if ($d->valueAliases !== null) { - $schema->addValueAliases( - $d->id->key, - $d->valueAliases - ); - } - } - $schema->postProcess(); - return $schema; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Builder/Xml.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Builder/Xml.php deleted file mode 100644 index 244561a..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Builder/Xml.php +++ /dev/null @@ -1,106 +0,0 @@ -startElement('div'); - - $purifier = HTMLPurifier::getInstance(); - $html = $purifier->purify($html); - $this->writeAttribute('xmlns', 'http://www.w3.org/1999/xhtml'); - $this->writeRaw($html); - - $this->endElement(); // div - } - - protected function export($var) { - if ($var === array()) return 'array()'; - return var_export($var, true); - } - - public function build($interchange) { - // global access, only use as last resort - $this->interchange = $interchange; - - $this->setIndent(true); - $this->startDocument('1.0', 'UTF-8'); - $this->startElement('configdoc'); - $this->writeElement('title', $interchange->name); - - foreach ($interchange->directives as $directive) { - $this->buildDirective($directive); - } - - if ($this->namespace) $this->endElement(); // namespace - - $this->endElement(); // configdoc - $this->flush(); - } - - public function buildDirective($directive) { - - // Kludge, although I suppose having a notion of a "root namespace" - // certainly makes things look nicer when documentation is built. - // Depends on things being sorted. - if (!$this->namespace || $this->namespace !== $directive->id->getRootNamespace()) { - if ($this->namespace) $this->endElement(); // namespace - $this->namespace = $directive->id->getRootNamespace(); - $this->startElement('namespace'); - $this->writeAttribute('id', $this->namespace); - $this->writeElement('name', $this->namespace); - } - - $this->startElement('directive'); - $this->writeAttribute('id', $directive->id->toString()); - - $this->writeElement('name', $directive->id->getDirective()); - - $this->startElement('aliases'); - foreach ($directive->aliases as $alias) $this->writeElement('alias', $alias->toString()); - $this->endElement(); // aliases - - $this->startElement('constraints'); - if ($directive->version) $this->writeElement('version', $directive->version); - $this->startElement('type'); - if ($directive->typeAllowsNull) $this->writeAttribute('allow-null', 'yes'); - $this->text($directive->type); - $this->endElement(); // type - if ($directive->allowed) { - $this->startElement('allowed'); - foreach ($directive->allowed as $value => $x) $this->writeElement('value', $value); - $this->endElement(); // allowed - } - $this->writeElement('default', $this->export($directive->default)); - $this->writeAttribute('xml:space', 'preserve'); - if ($directive->external) { - $this->startElement('external'); - foreach ($directive->external as $project) $this->writeElement('project', $project); - $this->endElement(); - } - $this->endElement(); // constraints - - if ($directive->deprecatedVersion) { - $this->startElement('deprecated'); - $this->writeElement('version', $directive->deprecatedVersion); - $this->writeElement('use', $directive->deprecatedUse->toString()); - $this->endElement(); // deprecated - } - - $this->startElement('description'); - $this->writeHTMLDiv($directive->description); - $this->endElement(); // description - - $this->endElement(); // directive - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Exception.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Exception.php deleted file mode 100644 index 2671516..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Exception.php +++ /dev/null @@ -1,11 +0,0 @@ - array(directive info) - */ - public $directives = array(); - - /** - * Adds a directive array to $directives - */ - public function addDirective($directive) { - if (isset($this->directives[$i = $directive->id->toString()])) { - throw new HTMLPurifier_ConfigSchema_Exception("Cannot redefine directive '$i'"); - } - $this->directives[$i] = $directive; - } - - /** - * Convenience function to perform standard validation. Throws exception - * on failed validation. - */ - public function validate() { - $validator = new HTMLPurifier_ConfigSchema_Validator(); - return $validator->validate($this); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Directive.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Directive.php deleted file mode 100644 index ac8be0d..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Directive.php +++ /dev/null @@ -1,77 +0,0 @@ - true). - * Null if all values are allowed. - */ - public $allowed; - - /** - * List of aliases for the directive, - * e.g. array(new HTMLPurifier_ConfigSchema_Interchange_Id('Ns', 'Dir'))). - */ - public $aliases = array(); - - /** - * Hash of value aliases, e.g. array('alt' => 'real'). Null if value - * aliasing is disabled (necessary for non-scalar types). - */ - public $valueAliases; - - /** - * Version of HTML Purifier the directive was introduced, e.g. '1.3.1'. - * Null if the directive has always existed. - */ - public $version; - - /** - * ID of directive that supercedes this old directive, is an instance - * of HTMLPurifier_ConfigSchema_Interchange_Id. Null if not deprecated. - */ - public $deprecatedUse; - - /** - * Version of HTML Purifier this directive was deprecated. Null if not - * deprecated. - */ - public $deprecatedVersion; - - /** - * List of external projects this directive depends on, e.g. array('CSSTidy'). - */ - public $external = array(); - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Id.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Id.php deleted file mode 100644 index b9b3c6f..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Id.php +++ /dev/null @@ -1,37 +0,0 @@ -key = $key; - } - - /** - * @warning This is NOT magic, to ensure that people don't abuse SPL and - * cause problems for PHP 5.0 support. - */ - public function toString() { - return $this->key; - } - - public function getRootNamespace() { - return substr($this->key, 0, strpos($this->key, ".")); - } - - public function getDirective() { - return substr($this->key, strpos($this->key, ".") + 1); - } - - public static function make($id) { - return new HTMLPurifier_ConfigSchema_Interchange_Id($id); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Namespace.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Namespace.php deleted file mode 100644 index 3ffac0a..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Namespace.php +++ /dev/null @@ -1,21 +0,0 @@ -varParser = $varParser ? $varParser : new HTMLPurifier_VarParser_Native(); - } - - public static function buildFromDirectory($dir = null) { - $builder = new HTMLPurifier_ConfigSchema_InterchangeBuilder(); - $interchange = new HTMLPurifier_ConfigSchema_Interchange(); - return $builder->buildDir($interchange, $dir); - } - - public function buildDir($interchange, $dir = null) { - if (!$dir) $dir = HTMLPURIFIER_PREFIX . '/HTMLPurifier/ConfigSchema/schema'; - if (file_exists($dir . '/info.ini')) { - $info = parse_ini_file($dir . '/info.ini'); - $interchange->name = $info['name']; - } - - $files = array(); - $dh = opendir($dir); - while (false !== ($file = readdir($dh))) { - if (!$file || $file[0] == '.' || strrchr($file, '.') !== '.txt') { - continue; - } - $files[] = $file; - } - closedir($dh); - - sort($files); - foreach ($files as $file) { - $this->buildFile($interchange, $dir . '/' . $file); - } - - return $interchange; - } - - public function buildFile($interchange, $file) { - $parser = new HTMLPurifier_StringHashParser(); - $this->build( - $interchange, - new HTMLPurifier_StringHash( $parser->parseFile($file) ) - ); - } - - /** - * Builds an interchange object based on a hash. - * @param $interchange HTMLPurifier_ConfigSchema_Interchange object to build - * @param $hash HTMLPurifier_ConfigSchema_StringHash source data - */ - public function build($interchange, $hash) { - if (!$hash instanceof HTMLPurifier_StringHash) { - $hash = new HTMLPurifier_StringHash($hash); - } - if (!isset($hash['ID'])) { - throw new HTMLPurifier_ConfigSchema_Exception('Hash does not have any ID'); - } - if (strpos($hash['ID'], '.') === false) { - if (count($hash) == 2 && isset($hash['DESCRIPTION'])) { - $hash->offsetGet('DESCRIPTION'); // prevent complaining - } else { - throw new HTMLPurifier_ConfigSchema_Exception('All directives must have a namespace'); - } - } else { - $this->buildDirective($interchange, $hash); - } - $this->_findUnused($hash); - } - - public function buildDirective($interchange, $hash) { - $directive = new HTMLPurifier_ConfigSchema_Interchange_Directive(); - - // These are required elements: - $directive->id = $this->id($hash->offsetGet('ID')); - $id = $directive->id->toString(); // convenience - - if (isset($hash['TYPE'])) { - $type = explode('/', $hash->offsetGet('TYPE')); - if (isset($type[1])) $directive->typeAllowsNull = true; - $directive->type = $type[0]; - } else { - throw new HTMLPurifier_ConfigSchema_Exception("TYPE in directive hash '$id' not defined"); - } - - if (isset($hash['DEFAULT'])) { - try { - $directive->default = $this->varParser->parse($hash->offsetGet('DEFAULT'), $directive->type, $directive->typeAllowsNull); - } catch (HTMLPurifier_VarParserException $e) { - throw new HTMLPurifier_ConfigSchema_Exception($e->getMessage() . " in DEFAULT in directive hash '$id'"); - } - } - - if (isset($hash['DESCRIPTION'])) { - $directive->description = $hash->offsetGet('DESCRIPTION'); - } - - if (isset($hash['ALLOWED'])) { - $directive->allowed = $this->lookup($this->evalArray($hash->offsetGet('ALLOWED'))); - } - - if (isset($hash['VALUE-ALIASES'])) { - $directive->valueAliases = $this->evalArray($hash->offsetGet('VALUE-ALIASES')); - } - - if (isset($hash['ALIASES'])) { - $raw_aliases = trim($hash->offsetGet('ALIASES')); - $aliases = preg_split('/\s*,\s*/', $raw_aliases); - foreach ($aliases as $alias) { - $directive->aliases[] = $this->id($alias); - } - } - - if (isset($hash['VERSION'])) { - $directive->version = $hash->offsetGet('VERSION'); - } - - if (isset($hash['DEPRECATED-USE'])) { - $directive->deprecatedUse = $this->id($hash->offsetGet('DEPRECATED-USE')); - } - - if (isset($hash['DEPRECATED-VERSION'])) { - $directive->deprecatedVersion = $hash->offsetGet('DEPRECATED-VERSION'); - } - - if (isset($hash['EXTERNAL'])) { - $directive->external = preg_split('/\s*,\s*/', trim($hash->offsetGet('EXTERNAL'))); - } - - $interchange->addDirective($directive); - } - - /** - * Evaluates an array PHP code string without array() wrapper - */ - protected function evalArray($contents) { - return eval('return array('. $contents .');'); - } - - /** - * Converts an array list into a lookup array. - */ - protected function lookup($array) { - $ret = array(); - foreach ($array as $val) $ret[$val] = true; - return $ret; - } - - /** - * Convenience function that creates an HTMLPurifier_ConfigSchema_Interchange_Id - * object based on a string Id. - */ - protected function id($id) { - return HTMLPurifier_ConfigSchema_Interchange_Id::make($id); - } - - /** - * Triggers errors for any unused keys passed in the hash; such keys - * may indicate typos, missing values, etc. - * @param $hash Instance of ConfigSchema_StringHash to check. - */ - protected function _findUnused($hash) { - $accessed = $hash->getAccessed(); - foreach ($hash as $k => $v) { - if (!isset($accessed[$k])) { - trigger_error("String hash key '$k' not used by builder", E_USER_NOTICE); - } - } - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Validator.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Validator.php deleted file mode 100644 index f374f6a..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/Validator.php +++ /dev/null @@ -1,206 +0,0 @@ -parser = new HTMLPurifier_VarParser(); - } - - /** - * Validates a fully-formed interchange object. Throws an - * HTMLPurifier_ConfigSchema_Exception if there's a problem. - */ - public function validate($interchange) { - $this->interchange = $interchange; - $this->aliases = array(); - // PHP is a bit lax with integer <=> string conversions in - // arrays, so we don't use the identical !== comparison - foreach ($interchange->directives as $i => $directive) { - $id = $directive->id->toString(); - if ($i != $id) $this->error(false, "Integrity violation: key '$i' does not match internal id '$id'"); - $this->validateDirective($directive); - } - return true; - } - - /** - * Validates a HTMLPurifier_ConfigSchema_Interchange_Id object. - */ - public function validateId($id) { - $id_string = $id->toString(); - $this->context[] = "id '$id_string'"; - if (!$id instanceof HTMLPurifier_ConfigSchema_Interchange_Id) { - // handled by InterchangeBuilder - $this->error(false, 'is not an instance of HTMLPurifier_ConfigSchema_Interchange_Id'); - } - // keys are now unconstrained (we might want to narrow down to A-Za-z0-9.) - // we probably should check that it has at least one namespace - $this->with($id, 'key') - ->assertNotEmpty() - ->assertIsString(); // implicit assertIsString handled by InterchangeBuilder - array_pop($this->context); - } - - /** - * Validates a HTMLPurifier_ConfigSchema_Interchange_Directive object. - */ - public function validateDirective($d) { - $id = $d->id->toString(); - $this->context[] = "directive '$id'"; - $this->validateId($d->id); - - $this->with($d, 'description') - ->assertNotEmpty(); - - // BEGIN - handled by InterchangeBuilder - $this->with($d, 'type') - ->assertNotEmpty(); - $this->with($d, 'typeAllowsNull') - ->assertIsBool(); - try { - // This also tests validity of $d->type - $this->parser->parse($d->default, $d->type, $d->typeAllowsNull); - } catch (HTMLPurifier_VarParserException $e) { - $this->error('default', 'had error: ' . $e->getMessage()); - } - // END - handled by InterchangeBuilder - - if (!is_null($d->allowed) || !empty($d->valueAliases)) { - // allowed and valueAliases require that we be dealing with - // strings, so check for that early. - $d_int = HTMLPurifier_VarParser::$types[$d->type]; - if (!isset(HTMLPurifier_VarParser::$stringTypes[$d_int])) { - $this->error('type', 'must be a string type when used with allowed or value aliases'); - } - } - - $this->validateDirectiveAllowed($d); - $this->validateDirectiveValueAliases($d); - $this->validateDirectiveAliases($d); - - array_pop($this->context); - } - - /** - * Extra validation if $allowed member variable of - * HTMLPurifier_ConfigSchema_Interchange_Directive is defined. - */ - public function validateDirectiveAllowed($d) { - if (is_null($d->allowed)) return; - $this->with($d, 'allowed') - ->assertNotEmpty() - ->assertIsLookup(); // handled by InterchangeBuilder - if (is_string($d->default) && !isset($d->allowed[$d->default])) { - $this->error('default', 'must be an allowed value'); - } - $this->context[] = 'allowed'; - foreach ($d->allowed as $val => $x) { - if (!is_string($val)) $this->error("value $val", 'must be a string'); - } - array_pop($this->context); - } - - /** - * Extra validation if $valueAliases member variable of - * HTMLPurifier_ConfigSchema_Interchange_Directive is defined. - */ - public function validateDirectiveValueAliases($d) { - if (is_null($d->valueAliases)) return; - $this->with($d, 'valueAliases') - ->assertIsArray(); // handled by InterchangeBuilder - $this->context[] = 'valueAliases'; - foreach ($d->valueAliases as $alias => $real) { - if (!is_string($alias)) $this->error("alias $alias", 'must be a string'); - if (!is_string($real)) $this->error("alias target $real from alias '$alias'", 'must be a string'); - if ($alias === $real) { - $this->error("alias '$alias'", "must not be an alias to itself"); - } - } - if (!is_null($d->allowed)) { - foreach ($d->valueAliases as $alias => $real) { - if (isset($d->allowed[$alias])) { - $this->error("alias '$alias'", 'must not be an allowed value'); - } elseif (!isset($d->allowed[$real])) { - $this->error("alias '$alias'", 'must be an alias to an allowed value'); - } - } - } - array_pop($this->context); - } - - /** - * Extra validation if $aliases member variable of - * HTMLPurifier_ConfigSchema_Interchange_Directive is defined. - */ - public function validateDirectiveAliases($d) { - $this->with($d, 'aliases') - ->assertIsArray(); // handled by InterchangeBuilder - $this->context[] = 'aliases'; - foreach ($d->aliases as $alias) { - $this->validateId($alias); - $s = $alias->toString(); - if (isset($this->interchange->directives[$s])) { - $this->error("alias '$s'", 'collides with another directive'); - } - if (isset($this->aliases[$s])) { - $other_directive = $this->aliases[$s]; - $this->error("alias '$s'", "collides with alias for directive '$other_directive'"); - } - $this->aliases[$s] = $d->id->toString(); - } - array_pop($this->context); - } - - // protected helper functions - - /** - * Convenience function for generating HTMLPurifier_ConfigSchema_ValidatorAtom - * for validating simple member variables of objects. - */ - protected function with($obj, $member) { - return new HTMLPurifier_ConfigSchema_ValidatorAtom($this->getFormattedContext(), $obj, $member); - } - - /** - * Emits an error, providing helpful context. - */ - protected function error($target, $msg) { - if ($target !== false) $prefix = ucfirst($target) . ' in ' . $this->getFormattedContext(); - else $prefix = ucfirst($this->getFormattedContext()); - throw new HTMLPurifier_ConfigSchema_Exception(trim($prefix . ' ' . $msg)); - } - - /** - * Returns a formatted context string. - */ - protected function getFormattedContext() { - return implode(' in ', array_reverse($this->context)); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/ValidatorAtom.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/ValidatorAtom.php deleted file mode 100644 index b95aea1..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/ValidatorAtom.php +++ /dev/null @@ -1,66 +0,0 @@ -context = $context; - $this->obj = $obj; - $this->member = $member; - $this->contents =& $obj->$member; - } - - public function assertIsString() { - if (!is_string($this->contents)) $this->error('must be a string'); - return $this; - } - - public function assertIsBool() { - if (!is_bool($this->contents)) $this->error('must be a boolean'); - return $this; - } - - public function assertIsArray() { - if (!is_array($this->contents)) $this->error('must be an array'); - return $this; - } - - public function assertNotNull() { - if ($this->contents === null) $this->error('must not be null'); - return $this; - } - - public function assertAlnum() { - $this->assertIsString(); - if (!ctype_alnum($this->contents)) $this->error('must be alphanumeric'); - return $this; - } - - public function assertNotEmpty() { - if (empty($this->contents)) $this->error('must not be empty'); - return $this; - } - - public function assertIsLookup() { - $this->assertIsArray(); - foreach ($this->contents as $v) { - if ($v !== true) $this->error('must be a lookup array'); - } - return $this; - } - - protected function error($msg) { - throw new HTMLPurifier_ConfigSchema_Exception(ucfirst($this->member) . ' in ' . $this->context . ' ' . $msg); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema.ser b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema.ser deleted file mode 100644 index 245ba5d2d09c71529c7e1357160a3393ff280a4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14140 zcmeHOTT>g$5k5b~#i_ic$|?jn$CjV4KxI_`QwY~Nc{;U7gP5?|RrX>-T>kI*zMh_o zmKE3!NnT`^jkMj<)6=(^>HYXLI(ReM`*?kRcG*_;)|%?iaar8j%x%`@O}+O%8x8m0@#*m0Xz#dbs=;xdmtW0doM&}yz;W@u9vvKQ5+_x*GS^wP zG)~6;=-YRQz~rfjE0c4AZNx7L5jx38ne}sR#wW+u$2#}E(oUSx(^a-K$9dDy%u|am zS#B4?vj+8ML>9C^9PLfr<5!k*a9ps8ioZ4w&55l@0(;)bCyo^DPmAm( zH`9~7_cx<`&N@`Wq^xf2VquD4)nJytDa-WaL!Qm=b6aC&o_cWblzL^B=3(ttA7-AO zTvq1RJ|s&XdYgLMSvk+(kZ2P+wQWi$x5}CUKVD{4wyd)ConOI_c8fgYwr*Suz9nflp*KB7qQ0hJtDlLY`;ve zfH*IznJ{~fL*`tUW46wU`ghyhm2JbQvNvtRJai#Nua0Lkm!;Fyx~!V4K*T5&{s`3T z%FgeDorf@5AeqIaESS2I+=$YIa#@vYQ#ID-K0|k8p##5Iy#$n9~4%9f}G zi%5tML7SP%q89wyNRl1|?)dyNqatDhE>dJAR8y^NUAx$@qoa3+j0Xh7xU9_Jc)6?$ zs9#L}II$0B;sZvEc!(V1GSAJtIjyR)+Vr1N%j)mu@oQNvB=%tEZ(@^GR+VKz13{@@ z-|q8|CP2m2yXTXMe-1O2RaUry#UYc)@f$Y;q({Sg9!GH;zroyP4(&bV?LKGXHw;?0 z)jCf|`yeXgZ9BiKZRUqj++@OU5cu`ZHeu96{*Z!1%RM1BgJP6LX{-$lFz49oCl~!iJXhFIG&BC)A1d)g*kKzjNBH5@uTc&r@7(!B#fnmLZ5nG*>zYl zw5^**h7?V}vw~mK86vmU-4+VEU>L$_A|JLfl}l=W4w2{QnJpUpi-yDG!r>Qr!Cj5n ze__7nFt6w?6`j?DesTp_jfKJ#+~ZYq3@Au*CVH`)7Ijm#bKNb}s90GdZ6>S6p{sHB zph{fo#OAQypu2w_Vx3AleQ0Rp8LjjoFX#95K>Q@`*0_P@+qq|R)NN;k=fz&z#baVp zEMTipA3F4hGX0}$uiG1Oq{Jrd%>$=DHbyU`Pt$!&yo6jy=`n!BV2G}idR{Kt+;2w* zu%;vOuzG=W=pddKbr(d+3X9nBcbsRip)pTjzqR~CdJ9BR9$987y=rXE!}Jz%Iz2KhDp_ZeH*B6r#jt)@Bqe+K(7SR&oWD^FCb$sX$>m_u<~agg3b$qfRxfjg zb3nRYe-7Z@xycp%?syzaB?7U#p8c);M1L`0JE>E@rP)lX(asMzGOUm}GQAI3>nz#;OH!)VSdB8QL!ZxZJY^&VvmrK>#6`NBM@qalb;HBt++38? zd0D`F>RzaVJB2SZa-n5O$Y8^7lAw1@gXDJWf(HB=YCi3pp#+zn0Y&6CvST4dvH8_} z)xpR%o%%yoCn-i{^it@Qp$j3%so_FSdGy#EvJghtq@+oRFczY%d6x{!hoh3m*epy{ z@PwfGrz+wC#!;SpW$LnpEoCYG$ef6ILRT>#OI|{yVyLcs(sMs$UQyn8c5jYv>N3Yw z#p|RRpSN-{_2oyn`RK{q47Na>8Pt~s$781k4>+WK!ojMt3ta!DM-ifcUT0ZEk}O=8 z;L=^BKRxY;=nVz8R4meUM6k$T{`$)zYjAwrHAGx<1=d88>>47whRCiVvTKM)8|8A> z5Q#mRT|;Eo5ZN_Eb`6oit|1~llU+k(*AQVJaMuuF*JalbaqoL}4UzwALj*k-G&a`S z5oHesO%^tzP1IX;*atw=MTGxPgV=+VKI#jf(aG;kWXc5<+#J8%E?j8D8Y+T`i=oAqocElBj zcDN&uhi$|@9U$VK{jy$Za&NKqac;BN*L((^qMkzAP1M=|r`XXu`U1VSF3m$z)Ei+{ z9)aRrz*e7*b+8qMrYNR>PK>AseoSyF(Jl#(f3K#hq5Yc>yQmbEKpo;NiZ`K#w0j5W zu?>~t6h34`1yR&>HRz1+FqY>X_k*+cJCnW&N_6M<>-u?6jEjVhW(k%>U!xLC<0p~O zh^i#ap5v#0FVSBCrIG+&lnR#zst3L(35E%z0DSSK4DI%WsJ&sqz9p{D988#b8VnLJ7RmUkZ zCnAjRI6Z;`74wC>^)|JBAf*Llk9T5SdYxKt6 z;Bp8M<-my{k<*6&QM-G_E&@b%4zFm0ceq;FhwNa)_}yD3??rcjOU?j(4Ltx4T>~?R zws3_f1$a0H7PEu_Iok{HP-(0zQCjyss%k~YC_rL!FM1w|5fL6yv#nr^$oxVyB9gZX zNkAq25s7SbgWW!cSBV{1%Kt_U_;C9g6zZathB>~KS6N@M*pJNCZ!Sc~^XB?*EAXtd z`I0^E4$QH`7yTQ@ykN8+oVnL-M3rpynLj1;p^jXh1gMJMP&nfC5$hnTgTNt_z*D9N z(1L{)EC1OyNfhYfzApnHD0OY!(^QO{4AgO-X{Dfr_futo6wOWWQD~WJ_0dllW zU=OAi%#fEGH+NnKJQco`!I7%S0@*vfX#%{b<6rsZ05~U6(UD_wH2mdBL#HC| zR4)LRw7O%xVzO|8+l&|q7;m`1lZK3V&Aa8vA>GYHvuat1sNs6Qm|5I9&a{%?AOJN7qF7<-F^-}SEy1aR9?RH9x*5&s3;3TgwV^- zFt^LQ0HZ@dc=S_*?HGam3ZR1*W4|iu;xSRGW>DWFqI6k4zZDS`pUO6_Px}^xy!JQf zj*R{qhICUf(-x4Gn>w7$ws1YK%F9r$UgfqTyVM*}cfs{}WS3ImxGu8G*BChD3Ajr~ zAq#rIT}s3_u|FM&M8a>JymYGO&8tUV|8l|GgB^>DC3;Brgn$}yaRf_{=+Iq$l@P~= zD5U&7DG%_9`KiPN+4Xef)9d082`?i(xGUO5+93+x0?UiG=}PLi3MykVpNEC{{gt8B zLr#!cPCxFL3EvaCigBp1jvYF{G1s8!hmE<(RAq&Yd1*R@Jbg0%HsqKNehECrdB1=E E4@82k;{X5v diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt deleted file mode 100644 index 0517fed..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt +++ /dev/null @@ -1,8 +0,0 @@ -Attr.AllowedClasses -TYPE: lookup/null -VERSION: 4.0.0 -DEFAULT: null ---DESCRIPTION-- -List of allowed class values in the class attribute. By default, this is null, -which means all classes are allowed. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt deleted file mode 100644 index 249edd6..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt +++ /dev/null @@ -1,12 +0,0 @@ -Attr.AllowedFrameTargets -TYPE: lookup -DEFAULT: array() ---DESCRIPTION-- -Lookup table of all allowed link frame targets. Some commonly used link -targets include _blank, _self, _parent and _top. Values should be -lowercase, as validation will be done in a case-sensitive manner despite -W3C's recommendation. XHTML 1.0 Strict does not permit the target attribute -so this directive will have no effect in that doctype. XHTML 1.1 does not -enable the Target module by default, you will have to manually enable it -(see the module documentation for more details.) ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt deleted file mode 100644 index 9a8fa6a..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt +++ /dev/null @@ -1,9 +0,0 @@ -Attr.AllowedRel -TYPE: lookup -VERSION: 1.6.0 -DEFAULT: array() ---DESCRIPTION-- -List of allowed forward document relationships in the rel attribute. Common -values may be nofollow or print. By default, this is empty, meaning that no -document relationships are allowed. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt deleted file mode 100644 index b017883..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt +++ /dev/null @@ -1,9 +0,0 @@ -Attr.AllowedRev -TYPE: lookup -VERSION: 1.6.0 -DEFAULT: array() ---DESCRIPTION-- -List of allowed reverse document relationships in the rev attribute. This -attribute is a bit of an edge-case; if you don't know what it is for, stay -away. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt deleted file mode 100644 index e774b82..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt +++ /dev/null @@ -1,19 +0,0 @@ -Attr.ClassUseCDATA -TYPE: bool/null -DEFAULT: null -VERSION: 4.0.0 ---DESCRIPTION-- -If null, class will auto-detect the doctype and, if matching XHTML 1.1 or -XHTML 2.0, will use the restrictive NMTOKENS specification of class. Otherwise, -it will use a relaxed CDATA definition. If true, the relaxed CDATA definition -is forced; if false, the NMTOKENS definition is forced. To get behavior -of HTML Purifier prior to 4.0.0, set this directive to false. - -Some rational behind the auto-detection: -in previous versions of HTML Purifier, it was assumed that the form of -class was NMTOKENS, as specified by the XHTML Modularization (representing -XHTML 1.1 and XHTML 2.0). The DTDs for HTML 4.01 and XHTML 1.0, however -specify class as CDATA. HTML 5 effectively defines it as CDATA, but -with the additional constraint that each name should be unique (this is not -explicitly outlined in previous specifications). ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt deleted file mode 100644 index 533165e..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt +++ /dev/null @@ -1,11 +0,0 @@ -Attr.DefaultImageAlt -TYPE: string/null -DEFAULT: null -VERSION: 3.2.0 ---DESCRIPTION-- -This is the content of the alt tag of an image if the user had not -previously specified an alt attribute. This applies to all images without -a valid alt attribute, as opposed to %Attr.DefaultInvalidImageAlt, which -only applies to invalid images, and overrides in the case of an invalid image. -Default behavior with null is to use the basename of the src tag for the alt. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt deleted file mode 100644 index 9eb7e38..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt +++ /dev/null @@ -1,9 +0,0 @@ -Attr.DefaultInvalidImage -TYPE: string -DEFAULT: '' ---DESCRIPTION-- -This is the default image an img tag will be pointed to if it does not have -a valid src attribute. In future versions, we may allow the image tag to -be removed completely, but due to design issues, this is not possible right -now. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt deleted file mode 100644 index 2f17bf4..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt +++ /dev/null @@ -1,8 +0,0 @@ -Attr.DefaultInvalidImageAlt -TYPE: string -DEFAULT: 'Invalid image' ---DESCRIPTION-- -This is the content of the alt tag of an invalid image if the user had not -previously specified an alt attribute. It has no effect when the image is -valid but there was no alt attribute present. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt deleted file mode 100644 index 52654b5..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt +++ /dev/null @@ -1,10 +0,0 @@ -Attr.DefaultTextDir -TYPE: string -DEFAULT: 'ltr' ---DESCRIPTION-- -Defines the default text direction (ltr or rtl) of the document being -parsed. This generally is the same as the value of the dir attribute in -HTML, or ltr if that is not specified. ---ALLOWED-- -'ltr', 'rtl' ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt deleted file mode 100644 index 6440d21..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt +++ /dev/null @@ -1,16 +0,0 @@ -Attr.EnableID -TYPE: bool -DEFAULT: false -VERSION: 1.2.0 ---DESCRIPTION-- -Allows the ID attribute in HTML. This is disabled by default due to the -fact that without proper configuration user input can easily break the -validation of a webpage by specifying an ID that is already on the -surrounding HTML. If you don't mind throwing caution to the wind, enable -this directive, but I strongly recommend you also consider blacklisting IDs -you use (%Attr.IDBlacklist) or prefixing all user supplied IDs -(%Attr.IDPrefix). When set to true HTML Purifier reverts to the behavior of -pre-1.2.0 versions. ---ALIASES-- -HTML.EnableAttrID ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt deleted file mode 100644 index f31d226..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt +++ /dev/null @@ -1,8 +0,0 @@ -Attr.ForbiddenClasses -TYPE: lookup -VERSION: 4.0.0 -DEFAULT: array() ---DESCRIPTION-- -List of forbidden class values in the class attribute. By default, this is -empty, which means that no classes are forbidden. See also %Attr.AllowedClasses. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt deleted file mode 100644 index 5f2b5e3..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt +++ /dev/null @@ -1,5 +0,0 @@ -Attr.IDBlacklist -TYPE: list -DEFAULT: array() -DESCRIPTION: Array of IDs not allowed in the document. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt deleted file mode 100644 index 6f58245..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt +++ /dev/null @@ -1,9 +0,0 @@ -Attr.IDBlacklistRegexp -TYPE: string/null -VERSION: 1.6.0 -DEFAULT: NULL ---DESCRIPTION-- -PCRE regular expression to be matched against all IDs. If the expression is -matches, the ID is rejected. Use this with care: may cause significant -degradation. ID matching is done after all other validation. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt deleted file mode 100644 index cc49d43..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt +++ /dev/null @@ -1,12 +0,0 @@ -Attr.IDPrefix -TYPE: string -VERSION: 1.2.0 -DEFAULT: '' ---DESCRIPTION-- -String to prefix to IDs. If you have no idea what IDs your pages may use, -you may opt to simply add a prefix to all user-submitted ID attributes so -that they are still usable, but will not conflict with core page IDs. -Example: setting the directive to 'user_' will result in a user submitted -'foo' to become 'user_foo' Be sure to set %HTML.EnableAttrID to true -before using this. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt deleted file mode 100644 index 2c5924a..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt +++ /dev/null @@ -1,14 +0,0 @@ -Attr.IDPrefixLocal -TYPE: string -VERSION: 1.2.0 -DEFAULT: '' ---DESCRIPTION-- -Temporary prefix for IDs used in conjunction with %Attr.IDPrefix. If you -need to allow multiple sets of user content on web page, you may need to -have a seperate prefix that changes with each iteration. This way, -seperately submitted user content displayed on the same page doesn't -clobber each other. Ideal values are unique identifiers for the content it -represents (i.e. the id of the row in the database). Be sure to add a -seperator (like an underscore) at the end. Warning: this directive will -not work unless %Attr.IDPrefix is set to a non-empty value! ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.txt deleted file mode 100644 index 2d72049..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.txt +++ /dev/null @@ -1,3 +0,0 @@ -Attr -DESCRIPTION: Features regarding attribute validation. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt deleted file mode 100644 index d5caa1b..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt +++ /dev/null @@ -1,31 +0,0 @@ -AutoFormat.AutoParagraph -TYPE: bool -VERSION: 2.0.1 -DEFAULT: false ---DESCRIPTION-- - -

- This directive turns on auto-paragraphing, where double newlines are - converted in to paragraphs whenever possible. Auto-paragraphing: -

-
    -
  • Always applies to inline elements or text in the root node,
  • -
  • Applies to inline elements or text with double newlines in nodes - that allow paragraph tags,
  • -
  • Applies to double newlines in paragraph tags
  • -
-

- p tags must be allowed for this directive to take effect. - We do not use br tags for paragraphing, as that is - semantically incorrect. -

-

- To prevent auto-paragraphing as a content-producer, refrain from using - double-newlines except to specify a new paragraph or in contexts where - it has special meaning (whitespace usually has no meaning except in - tags like pre, so this should not be difficult.) To prevent - the paragraphing of inline text adjacent to block elements, wrap them - in div tags (the behavior is slightly different outside of - the root node.) -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt deleted file mode 100644 index 2a47648..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt +++ /dev/null @@ -1,12 +0,0 @@ -AutoFormat.Custom -TYPE: list -VERSION: 2.0.1 -DEFAULT: array() ---DESCRIPTION-- - -

- This directive can be used to add custom auto-format injectors. - Specify an array of injector names (class name minus the prefix) - or concrete implementations. Injector class must exist. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt deleted file mode 100644 index 663064a..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt +++ /dev/null @@ -1,11 +0,0 @@ -AutoFormat.DisplayLinkURI -TYPE: bool -VERSION: 3.2.0 -DEFAULT: false ---DESCRIPTION-- -

- This directive turns on the in-text display of URIs in <a> tags, and disables - those links. For example, example becomes - example (http://example.com). -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt deleted file mode 100644 index 3a48ba9..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt +++ /dev/null @@ -1,12 +0,0 @@ -AutoFormat.Linkify -TYPE: bool -VERSION: 2.0.1 -DEFAULT: false ---DESCRIPTION-- - -

- This directive turns on linkification, auto-linking http, ftp and - https URLs. a tags with the href attribute - must be allowed. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt deleted file mode 100644 index db58b13..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt +++ /dev/null @@ -1,12 +0,0 @@ -AutoFormat.PurifierLinkify.DocURL -TYPE: string -VERSION: 2.0.1 -DEFAULT: '#%s' -ALIASES: AutoFormatParam.PurifierLinkifyDocURL ---DESCRIPTION-- -

- Location of configuration documentation to link to, let %s substitute - into the configuration's namespace and directive names sans the percent - sign. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt deleted file mode 100644 index 7996488..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt +++ /dev/null @@ -1,12 +0,0 @@ -AutoFormat.PurifierLinkify -TYPE: bool -VERSION: 2.0.1 -DEFAULT: false ---DESCRIPTION-- - -

- Internal auto-formatter that converts configuration directives in - syntax %Namespace.Directive to links. a tags - with the href attribute must be allowed. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt deleted file mode 100644 index 35c393b..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt +++ /dev/null @@ -1,11 +0,0 @@ -AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions -TYPE: lookup -VERSION: 4.0.0 -DEFAULT: array('td' => true, 'th' => true) ---DESCRIPTION-- -

- When %AutoFormat.RemoveEmpty and %AutoFormat.RemoveEmpty.RemoveNbsp - are enabled, this directive defines what HTML elements should not be - removede if they have only a non-breaking space in them. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt deleted file mode 100644 index ca17eb1..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt +++ /dev/null @@ -1,15 +0,0 @@ -AutoFormat.RemoveEmpty.RemoveNbsp -TYPE: bool -VERSION: 4.0.0 -DEFAULT: false ---DESCRIPTION-- -

- When enabled, HTML Purifier will treat any elements that contain only - non-breaking spaces as well as regular whitespace as empty, and remove - them when %AutoForamt.RemoveEmpty is enabled. -

-

- See %AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions for a list of elements - that don't have this behavior applied to them. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt deleted file mode 100644 index 34657ba..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt +++ /dev/null @@ -1,46 +0,0 @@ -AutoFormat.RemoveEmpty -TYPE: bool -VERSION: 3.2.0 -DEFAULT: false ---DESCRIPTION-- -

- When enabled, HTML Purifier will attempt to remove empty elements that - contribute no semantic information to the document. The following types - of nodes will be removed: -

-
  • - Tags with no attributes and no content, and that are not empty - elements (remove <a></a> but not - <br />), and -
  • -
  • - Tags with no content, except for:
      -
    • The colgroup element, or
    • -
    • - Elements with the id or name attribute, - when those attributes are permitted on those elements. -
    • -
  • -
-

- Please be very careful when using this functionality; while it may not - seem that empty elements contain useful information, they can alter the - layout of a document given appropriate styling. This directive is most - useful when you are processing machine-generated HTML, please avoid using - it on regular user HTML. -

-

- Elements that contain only whitespace will be treated as empty. Non-breaking - spaces, however, do not count as whitespace. See - %AutoFormat.RemoveEmpty.RemoveNbsp for alternate behavior. -

-

- This algorithm is not perfect; you may still notice some empty tags, - particularly if a node had elements, but those elements were later removed - because they were not permitted in that context, or tags that, after - being auto-closed by another tag, where empty. This is for safety reasons - to prevent clever code from breaking validation. The general rule of thumb: - if a tag looked empty on the way in, it will get removed; if HTML Purifier - made it empty, it will stay. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt deleted file mode 100644 index dde990a..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt +++ /dev/null @@ -1,11 +0,0 @@ -AutoFormat.RemoveSpansWithoutAttributes -TYPE: bool -VERSION: 4.0.1 -DEFAULT: false ---DESCRIPTION-- -

- This directive causes span tags without any attributes - to be removed. It will also remove spans that had all attributes - removed during processing. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.txt deleted file mode 100644 index 161a52e..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.txt +++ /dev/null @@ -1,3 +0,0 @@ -AutoFormat -DESCRIPTION: Configuration for activating auto-formatting functionality (also known as Injectors) ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormatParam.PurifierLinkifyDocURL.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormatParam.PurifierLinkifyDocURL.txt deleted file mode 100644 index 3e8309e..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormatParam.PurifierLinkifyDocURL.txt +++ /dev/null @@ -1,12 +0,0 @@ -AutoFormatParam.PurifierLinkifyDocURL -TYPE: string -VERSION: 2.0.1 -DEFAULT: '#%s' ---DESCRIPTION-- - -

- Location of configuration documentation to link to, let %s substitute - into the configuration's namespace and directive names sans the percent - sign. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormatParam.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormatParam.txt deleted file mode 100644 index 6097a55..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormatParam.txt +++ /dev/null @@ -1,3 +0,0 @@ -AutoFormatParam -DESCRIPTION: Configuration for customizing auto-formatting functionality ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt deleted file mode 100644 index b324608..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt +++ /dev/null @@ -1,8 +0,0 @@ -CSS.AllowImportant -TYPE: bool -DEFAULT: false -VERSION: 3.1.0 ---DESCRIPTION-- -This parameter determines whether or not !important cascade modifiers should -be allowed in user CSS. If false, !important will stripped. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt deleted file mode 100644 index 748be0e..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt +++ /dev/null @@ -1,11 +0,0 @@ -CSS.AllowTricky -TYPE: bool -DEFAULT: false -VERSION: 3.1.0 ---DESCRIPTION-- -This parameter determines whether or not to allow "tricky" CSS properties and -values. Tricky CSS properties/values can drastically modify page layout or -be used for deceptive practices but do not directly constitute a security risk. -For example, display:none; is considered a tricky property that -will only be allowed if this directive is set to true. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt deleted file mode 100644 index 3fd4654..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt +++ /dev/null @@ -1,12 +0,0 @@ -CSS.AllowedFonts -TYPE: lookup/null -VERSION: 4.3.0 -DEFAULT: NULL ---DESCRIPTION-- -

- Allows you to manually specify a set of allowed fonts. If - NULL, all fonts are allowed. This directive - affects generic names (serif, sans-serif, monospace, cursive, - fantasy) as well as specific font families. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt deleted file mode 100644 index 460112e..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt +++ /dev/null @@ -1,18 +0,0 @@ -CSS.AllowedProperties -TYPE: lookup/null -VERSION: 3.1.0 -DEFAULT: NULL ---DESCRIPTION-- - -

- If HTML Purifier's style attributes set is unsatisfactory for your needs, - you can overload it with your own list of tags to allow. Note that this - method is subtractive: it does its job by taking away from HTML Purifier - usual feature set, so you cannot add an attribute that HTML Purifier never - supported in the first place. -

-

- Warning: If another directive conflicts with the - elements here, that directive will win and override. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt deleted file mode 100644 index 5cb7dda..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt +++ /dev/null @@ -1,11 +0,0 @@ -CSS.DefinitionRev -TYPE: int -VERSION: 2.0.0 -DEFAULT: 1 ---DESCRIPTION-- - -

- Revision identifier for your custom definition. See - %HTML.DefinitionRev for details. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt deleted file mode 100644 index f1f5c5f..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt +++ /dev/null @@ -1,13 +0,0 @@ -CSS.ForbiddenProperties -TYPE: lookup -VERSION: 4.2.0 -DEFAULT: array() ---DESCRIPTION-- -

- This is the logical inverse of %CSS.AllowedProperties, and it will - override that directive or any other directive. If possible, - %CSS.AllowedProperties is recommended over this directive, - because it can sometimes be difficult to tell whether or not you've - forbidden all of the CSS properties you truly would like to disallow. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt deleted file mode 100644 index 7a32914..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt +++ /dev/null @@ -1,16 +0,0 @@ -CSS.MaxImgLength -TYPE: string/null -DEFAULT: '1200px' -VERSION: 3.1.1 ---DESCRIPTION-- -

- This parameter sets the maximum allowed length on img tags, - effectively the width and height properties. - Only absolute units of measurement (in, pt, pc, mm, cm) and pixels (px) are allowed. This is - in place to prevent imagecrash attacks, disable with null at your own risk. - This directive is similar to %HTML.MaxImgLength, and both should be - concurrently edited, although there are - subtle differences in the input format (the CSS max is a number with - a unit). -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt deleted file mode 100644 index 148eedb..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt +++ /dev/null @@ -1,10 +0,0 @@ -CSS.Proprietary -TYPE: bool -VERSION: 3.0.0 -DEFAULT: false ---DESCRIPTION-- - -

- Whether or not to allow safe, proprietary CSS values. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt deleted file mode 100644 index e733a61..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt +++ /dev/null @@ -1,9 +0,0 @@ -CSS.Trusted -TYPE: bool -VERSION: 4.2.1 -DEFAULT: false ---DESCRIPTION-- -Indicates whether or not the user's CSS input is trusted or not. If the -input is trusted, a more expansive set of allowed properties. See -also %HTML.Trusted. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.txt deleted file mode 100644 index d14b490..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.txt +++ /dev/null @@ -1,3 +0,0 @@ -CSS -DESCRIPTION: Configuration regarding allowed CSS. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt deleted file mode 100644 index c486724..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt +++ /dev/null @@ -1,14 +0,0 @@ -Cache.DefinitionImpl -TYPE: string/null -VERSION: 2.0.0 -DEFAULT: 'Serializer' ---DESCRIPTION-- - -This directive defines which method to use when caching definitions, -the complex data-type that makes HTML Purifier tick. Set to null -to disable caching (not recommended, as you will see a definite -performance degradation). - ---ALIASES-- -Core.DefinitionCache ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt deleted file mode 100644 index 5403650..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt +++ /dev/null @@ -1,13 +0,0 @@ -Cache.SerializerPath -TYPE: string/null -VERSION: 2.0.0 -DEFAULT: NULL ---DESCRIPTION-- - -

- Absolute path with no trailing slash to store serialized definitions in. - Default is within the - HTML Purifier library inside DefinitionCache/Serializer. This - path must be writable by the webserver. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt deleted file mode 100644 index b2b83d9..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt +++ /dev/null @@ -1,11 +0,0 @@ -Cache.SerializerPermissions -TYPE: int -VERSION: 4.3.0 -DEFAULT: 0755 ---DESCRIPTION-- - -

- Directory permissions of the files and directories created inside - the DefinitionCache/Serializer or other custom serializer path. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.txt deleted file mode 100644 index 57f3023..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.txt +++ /dev/null @@ -1,3 +0,0 @@ -Cache -DESCRIPTION: Configuration for DefinitionCache and related subclasses. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt deleted file mode 100644 index 568cbf3..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt +++ /dev/null @@ -1,18 +0,0 @@ -Core.AggressivelyFixLt -TYPE: bool -VERSION: 2.1.0 -DEFAULT: true ---DESCRIPTION-- -

- This directive enables aggressive pre-filter fixes HTML Purifier can - perform in order to ensure that open angled-brackets do not get killed - during parsing stage. Enabling this will result in two preg_replace_callback - calls and at least two preg_replace calls for every HTML document parsed; - if your users make very well-formed HTML, you can set this directive false. - This has no effect when DirectLex is used. -

-

- Notice: This directive's default turned from false to true - in HTML Purifier 3.2.0. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt deleted file mode 100644 index d731791..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt +++ /dev/null @@ -1,12 +0,0 @@ -Core.CollectErrors -TYPE: bool -VERSION: 2.0.0 -DEFAULT: false ---DESCRIPTION-- - -Whether or not to collect errors found while filtering the document. This -is a useful way to give feedback to your users. Warning: -Currently this feature is very patchy and experimental, with lots of -possible error messages not yet implemented. It will not cause any -problems, but it may not help your users either. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt deleted file mode 100644 index 08b381d..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt +++ /dev/null @@ -1,28 +0,0 @@ -Core.ColorKeywords -TYPE: hash -VERSION: 2.0.0 ---DEFAULT-- -array ( - 'maroon' => '#800000', - 'red' => '#FF0000', - 'orange' => '#FFA500', - 'yellow' => '#FFFF00', - 'olive' => '#808000', - 'purple' => '#800080', - 'fuchsia' => '#FF00FF', - 'white' => '#FFFFFF', - 'lime' => '#00FF00', - 'green' => '#008000', - 'navy' => '#000080', - 'blue' => '#0000FF', - 'aqua' => '#00FFFF', - 'teal' => '#008080', - 'black' => '#000000', - 'silver' => '#C0C0C0', - 'gray' => '#808080', -) ---DESCRIPTION-- - -Lookup array of color names to six digit hexadecimal number corresponding -to color, with preceding hash mark. Used when parsing colors. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt deleted file mode 100644 index 64b114f..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt +++ /dev/null @@ -1,14 +0,0 @@ -Core.ConvertDocumentToFragment -TYPE: bool -DEFAULT: true ---DESCRIPTION-- - -This parameter determines whether or not the filter should convert -input that is a full document with html and body tags to a fragment -of just the contents of a body tag. This parameter is simply something -HTML Purifier can do during an edge-case: for most inputs, this -processing is not necessary. - ---ALIASES-- -Core.AcceptFullDocuments ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt deleted file mode 100644 index 36f16e0..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt +++ /dev/null @@ -1,17 +0,0 @@ -Core.DirectLexLineNumberSyncInterval -TYPE: int -VERSION: 2.0.0 -DEFAULT: 0 ---DESCRIPTION-- - -

- Specifies the number of tokens the DirectLex line number tracking - implementations should process before attempting to resyncronize the - current line count by manually counting all previous new-lines. When - at 0, this functionality is disabled. Lower values will decrease - performance, and this is only strictly necessary if the counting - algorithm is buggy (in which case you should report it as a bug). - This has no effect when %Core.MaintainLineNumbers is disabled or DirectLex is - not being used. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt deleted file mode 100644 index 8bfb47c..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt +++ /dev/null @@ -1,15 +0,0 @@ -Core.Encoding -TYPE: istring -DEFAULT: 'utf-8' ---DESCRIPTION-- -If for some reason you are unable to convert all webpages to UTF-8, you can -use this directive as a stop-gap compatibility change to let HTML Purifier -deal with non UTF-8 input. This technique has notable deficiencies: -absolutely no characters outside of the selected character encoding will be -preserved, not even the ones that have been ampersand escaped (this is due -to a UTF-8 specific feature that automatically resolves all -entities), making it pretty useless for anything except the most I18N-blind -applications, although %Core.EscapeNonASCIICharacters offers fixes this -trouble with another tradeoff. This directive only accepts ISO-8859-1 if -iconv is not enabled. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt deleted file mode 100644 index 4d5b505..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt +++ /dev/null @@ -1,10 +0,0 @@ -Core.EscapeInvalidChildren -TYPE: bool -DEFAULT: false ---DESCRIPTION-- -When true, a child is found that is not allowed in the context of the -parent element will be transformed into text as if it were ASCII. When -false, that element and all internal tags will be dropped, though text will -be preserved. There is no option for dropping the element but preserving -child nodes. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt deleted file mode 100644 index a7a5b24..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt +++ /dev/null @@ -1,7 +0,0 @@ -Core.EscapeInvalidTags -TYPE: bool -DEFAULT: false ---DESCRIPTION-- -When true, invalid tags will be written back to the document as plain text. -Otherwise, they are silently dropped. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt deleted file mode 100644 index abb4999..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt +++ /dev/null @@ -1,13 +0,0 @@ -Core.EscapeNonASCIICharacters -TYPE: bool -VERSION: 1.4.0 -DEFAULT: false ---DESCRIPTION-- -This directive overcomes a deficiency in %Core.Encoding by blindly -converting all non-ASCII characters into decimal numeric entities before -converting it to its native encoding. This means that even characters that -can be expressed in the non-UTF-8 encoding will be entity-ized, which can -be a real downer for encodings like Big5. It also assumes that the ASCII -repetoire is available, although this is the case for almost all encodings. -Anyway, use UTF-8! ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt deleted file mode 100644 index 915391e..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt +++ /dev/null @@ -1,19 +0,0 @@ -Core.HiddenElements -TYPE: lookup ---DEFAULT-- -array ( - 'script' => true, - 'style' => true, -) ---DESCRIPTION-- - -

- This directive is a lookup array of elements which should have their - contents removed when they are not allowed by the HTML definition. - For example, the contents of a script tag are not - normally shown in a document, so if script tags are to be removed, - their contents should be removed to. This is opposed to a b - tag, which defines some presentational changes but does not hide its - contents. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.Language.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.Language.txt deleted file mode 100644 index 233fca1..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.Language.txt +++ /dev/null @@ -1,10 +0,0 @@ -Core.Language -TYPE: string -VERSION: 2.0.0 -DEFAULT: 'en' ---DESCRIPTION-- - -ISO 639 language code for localizable things in HTML Purifier to use, -which is mainly error reporting. There is currently only an English (en) -translation, so this directive is currently useless. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt deleted file mode 100644 index 8983e2c..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt +++ /dev/null @@ -1,34 +0,0 @@ -Core.LexerImpl -TYPE: mixed/null -VERSION: 2.0.0 -DEFAULT: NULL ---DESCRIPTION-- - -

- This parameter determines what lexer implementation can be used. The - valid values are: -

-
-
null
-
- Recommended, the lexer implementation will be auto-detected based on - your PHP-version and configuration. -
-
string lexer identifier
-
- This is a slim way of manually overridding the implementation. - Currently recognized values are: DOMLex (the default PHP5 -implementation) - and DirectLex (the default PHP4 implementation). Only use this if - you know what you are doing: usually, the auto-detection will - manage things for cases you aren't even aware of. -
-
object lexer instance
-
- Super-advanced: you can specify your own, custom, implementation that - implements the interface defined by HTMLPurifier_Lexer. - I may remove this option simply because I don't expect anyone - to use it. -
-
---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt deleted file mode 100644 index eb841a7..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt +++ /dev/null @@ -1,16 +0,0 @@ -Core.MaintainLineNumbers -TYPE: bool/null -VERSION: 2.0.0 -DEFAULT: NULL ---DESCRIPTION-- - -

- If true, HTML Purifier will add line number information to all tokens. - This is useful when error reporting is turned on, but can result in - significant performance degradation and should not be used when - unnecessary. This directive must be used with the DirectLex lexer, - as the DOMLex lexer does not (yet) support this functionality. - If the value is null, an appropriate value will be selected based - on other configuration. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt deleted file mode 100644 index d77f536..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt +++ /dev/null @@ -1,11 +0,0 @@ -Core.NormalizeNewlines -TYPE: bool -VERSION: 4.2.0 -DEFAULT: true ---DESCRIPTION-- -

- Whether or not to normalize newlines to the operating - system default. When false, HTML Purifier - will attempt to preserve mixed newline files. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt deleted file mode 100644 index 4070c2a..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt +++ /dev/null @@ -1,12 +0,0 @@ -Core.RemoveInvalidImg -TYPE: bool -DEFAULT: true -VERSION: 1.3.0 ---DESCRIPTION-- - -

- This directive enables pre-emptive URI checking in img - tags, as the attribute validation strategy is not authorized to - remove elements from the document. Revert to pre-1.3.0 behavior by setting to false. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt deleted file mode 100644 index 3397d9f..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt +++ /dev/null @@ -1,11 +0,0 @@ -Core.RemoveProcessingInstructions -TYPE: bool -VERSION: 4.2.0 -DEFAULT: false ---DESCRIPTION-- -Instead of escaping processing instructions in the form <? ... -?>, remove it out-right. This may be useful if the HTML -you are validating contains XML processing instruction gunk, however, -it can also be user-unfriendly for people attempting to post PHP -snippets. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt deleted file mode 100644 index a4cd966..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt +++ /dev/null @@ -1,12 +0,0 @@ -Core.RemoveScriptContents -TYPE: bool/null -DEFAULT: NULL -VERSION: 2.0.0 -DEPRECATED-VERSION: 2.1.0 -DEPRECATED-USE: Core.HiddenElements ---DESCRIPTION-- -

- This directive enables HTML Purifier to remove not only script tags - but all of their contents. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.txt deleted file mode 100644 index 5edfe07..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.txt +++ /dev/null @@ -1,3 +0,0 @@ -Core -DESCRIPTION: Core features that are always available. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt deleted file mode 100644 index 3db50ef..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt +++ /dev/null @@ -1,11 +0,0 @@ -Filter.Custom -TYPE: list -VERSION: 3.1.0 -DEFAULT: array() ---DESCRIPTION-- -

- This directive can be used to add custom filters; it is nearly the - equivalent of the now deprecated HTMLPurifier->addFilter() - method. Specify an array of concrete implementations. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt deleted file mode 100644 index 16829bc..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt +++ /dev/null @@ -1,14 +0,0 @@ -Filter.ExtractStyleBlocks.Escaping -TYPE: bool -VERSION: 3.0.0 -DEFAULT: true -ALIASES: Filter.ExtractStyleBlocksEscaping, FilterParam.ExtractStyleBlocksEscaping ---DESCRIPTION-- - -

- Whether or not to escape the dangerous characters <, > and & - as \3C, \3E and \26, respectively. This is can be safely set to false - if the contents of StyleBlocks will be placed in an external stylesheet, - where there is no risk of it being interpreted as HTML. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt deleted file mode 100644 index 7f95f54..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt +++ /dev/null @@ -1,29 +0,0 @@ -Filter.ExtractStyleBlocks.Scope -TYPE: string/null -VERSION: 3.0.0 -DEFAULT: NULL -ALIASES: Filter.ExtractStyleBlocksScope, FilterParam.ExtractStyleBlocksScope ---DESCRIPTION-- - -

- If you would like users to be able to define external stylesheets, but - only allow them to specify CSS declarations for a specific node and - prevent them from fiddling with other elements, use this directive. - It accepts any valid CSS selector, and will prepend this to any - CSS declaration extracted from the document. For example, if this - directive is set to #user-content and a user uses the - selector a:hover, the final selector will be - #user-content a:hover. -

-

- The comma shorthand may be used; consider the above example, with - #user-content, #user-content2, the final selector will - be #user-content a:hover, #user-content2 a:hover. -

-

- Warning: It is possible for users to bypass this measure - using a naughty + selector. This is a bug in CSS Tidy 1.3, not HTML - Purifier, and I am working to get it fixed. Until then, HTML Purifier - performs a basic check to prevent this. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt deleted file mode 100644 index 6c231b2..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt +++ /dev/null @@ -1,16 +0,0 @@ -Filter.ExtractStyleBlocks.TidyImpl -TYPE: mixed/null -VERSION: 3.1.0 -DEFAULT: NULL -ALIASES: FilterParam.ExtractStyleBlocksTidyImpl ---DESCRIPTION-- -

- If left NULL, HTML Purifier will attempt to instantiate a csstidy - class to use for internal cleaning. This will usually be good enough. -

-

- However, for trusted user input, you can set this to false to - disable cleaning. In addition, you can supply your own concrete implementation - of Tidy's interface to use, although I don't know why you'd want to do that. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt deleted file mode 100644 index 078d087..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt +++ /dev/null @@ -1,74 +0,0 @@ -Filter.ExtractStyleBlocks -TYPE: bool -VERSION: 3.1.0 -DEFAULT: false -EXTERNAL: CSSTidy ---DESCRIPTION-- -

- This directive turns on the style block extraction filter, which removes - style blocks from input HTML, cleans them up with CSSTidy, - and places them in the StyleBlocks context variable, for further - use by you, usually to be placed in an external stylesheet, or a - style block in the head of your document. -

-

- Sample usage: -

-
';
-?>
-
-
-
-  Filter.ExtractStyleBlocks
-body {color:#F00;} Some text';
-
-    $config = HTMLPurifier_Config::createDefault();
-    $config->set('Filter', 'ExtractStyleBlocks', true);
-    $purifier = new HTMLPurifier($config);
-
-    $html = $purifier->purify($dirty);
-
-    // This implementation writes the stylesheets to the styles/ directory.
-    // You can also echo the styles inside the document, but it's a bit
-    // more difficult to make sure they get interpreted properly by
-    // browsers; try the usual CSS armoring techniques.
-    $styles = $purifier->context->get('StyleBlocks');
-    $dir = 'styles/';
-    if (!is_dir($dir)) mkdir($dir);
-    $hash = sha1($_GET['html']);
-    foreach ($styles as $i => $style) {
-        file_put_contents($name = $dir . $hash . "_$i");
-        echo '';
-    }
-?>
-
-
-  
- -
- - -]]>
-

- Warning: It is possible for a user to mount an - imagecrash attack using this CSS. Counter-measures are difficult; - it is not simply enough to limit the range of CSS lengths (using - relative lengths with many nesting levels allows for large values - to be attained without actually specifying them in the stylesheet), - and the flexible nature of selectors makes it difficult to selectively - disable lengths on image tags (HTML Purifier, however, does disable - CSS width and height in inline styling). There are probably two effective - counter measures: an explicit width and height set to auto in all - images in your document (unlikely) or the disabling of width and - height (somewhat reasonable). Whether or not these measures should be - used is left to the reader. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt deleted file mode 100644 index 321eaa2..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt +++ /dev/null @@ -1,16 +0,0 @@ -Filter.YouTube -TYPE: bool -VERSION: 3.1.0 -DEFAULT: false ---DESCRIPTION-- -

- Warning: Deprecated in favor of %HTML.SafeObject and - %Output.FlashCompat (turn both on to allow YouTube videos and other - Flash content). -

-

- This directive enables YouTube video embedding in HTML Purifier. Check - this document - on embedding videos for more information on what this filter does. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.txt deleted file mode 100644 index f2d25a1..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.txt +++ /dev/null @@ -1,3 +0,0 @@ -Filter -DESCRIPTION: Directives for turning filters on and off, or specifying custom filters. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.ExtractStyleBlocksEscaping.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.ExtractStyleBlocksEscaping.txt deleted file mode 100644 index d436ed0..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.ExtractStyleBlocksEscaping.txt +++ /dev/null @@ -1,14 +0,0 @@ -FilterParam.ExtractStyleBlocksEscaping -TYPE: bool -VERSION: 3.0.0 -DEFAULT: true -ALIASES: Filter.ExtractStyleBlocksEscaping ---DESCRIPTION-- - -

- Whether or not to escape the dangerous characters <, > and & - as \3C, \3E and \26, respectively. This is can be safely set to false - if the contents of StyleBlocks will be placed in an external stylesheet, - where there is no risk of it being interpreted as HTML. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.ExtractStyleBlocksScope.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.ExtractStyleBlocksScope.txt deleted file mode 100644 index 3943529..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.ExtractStyleBlocksScope.txt +++ /dev/null @@ -1,29 +0,0 @@ -FilterParam.ExtractStyleBlocksScope -TYPE: string/null -VERSION: 3.0.0 -DEFAULT: NULL -ALIASES: Filter.ExtractStyleBlocksScope ---DESCRIPTION-- - -

- If you would like users to be able to define external stylesheets, but - only allow them to specify CSS declarations for a specific node and - prevent them from fiddling with other elements, use this directive. - It accepts any valid CSS selector, and will prepend this to any - CSS declaration extracted from the document. For example, if this - directive is set to #user-content and a user uses the - selector a:hover, the final selector will be - #user-content a:hover. -

-

- The comma shorthand may be used; consider the above example, with - #user-content, #user-content2, the final selector will - be #user-content a:hover, #user-content2 a:hover. -

-

- Warning: It is possible for users to bypass this measure - using a naughty + selector. This is a bug in CSS Tidy 1.3, not HTML - Purifier, and I am working to get it fixed. Until then, HTML Purifier - performs a basic check to prevent this. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.ExtractStyleBlocksTidyImpl.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.ExtractStyleBlocksTidyImpl.txt deleted file mode 100644 index cafccf8..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.ExtractStyleBlocksTidyImpl.txt +++ /dev/null @@ -1,15 +0,0 @@ -FilterParam.ExtractStyleBlocksTidyImpl -TYPE: mixed/null -VERSION: 3.1.0 -DEFAULT: NULL ---DESCRIPTION-- -

- If left NULL, HTML Purifier will attempt to instantiate a csstidy - class to use for internal cleaning. This will usually be good enough. -

-

- However, for trusted user input, you can set this to false to - disable cleaning. In addition, you can supply your own concrete implementation - of Tidy's interface to use, although I don't know why you'd want to do that. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.txt deleted file mode 100644 index dff9784..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.txt +++ /dev/null @@ -1,3 +0,0 @@ -FilterParam -DESCRIPTION: Configuration for filters. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt deleted file mode 100644 index 0b2c106..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt +++ /dev/null @@ -1,25 +0,0 @@ -HTML.Allowed -TYPE: itext/null -VERSION: 2.0.0 -DEFAULT: NULL ---DESCRIPTION-- - -

- This is a preferred convenience directive that combines - %HTML.AllowedElements and %HTML.AllowedAttributes. - Specify elements and attributes that are allowed using: - element1[attr1|attr2],element2.... For example, - if you would like to only allow paragraphs and links, specify - a[href],p. You can specify attributes that apply - to all elements using an asterisk, e.g. *[lang]. - You can also use newlines instead of commas to separate elements. -

-

- Warning: - All of the constraints on the component directives are still enforced. - The syntax is a subset of TinyMCE's valid_elements - whitelist: directly copy-pasting it here will probably result in - broken whitelists. If %HTML.AllowedElements or %HTML.AllowedAttributes - are set, this directive has no effect. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt deleted file mode 100644 index fcf093f..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTML.AllowedAttributes -TYPE: lookup/null -VERSION: 1.3.0 -DEFAULT: NULL ---DESCRIPTION-- - -

- If HTML Purifier's attribute set is unsatisfactory, overload it! - The syntax is "tag.attr" or "*.attr" for the global attributes - (style, id, class, dir, lang, xml:lang). -

-

- Warning: If another directive conflicts with the - elements here, that directive will win and override. For - example, %HTML.EnableAttrID will take precedence over *.id in this - directive. You must set that directive to true before you can use - IDs at all. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt deleted file mode 100644 index 1d3fa79..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt +++ /dev/null @@ -1,23 +0,0 @@ -HTML.AllowedElements -TYPE: lookup/null -VERSION: 1.3.0 -DEFAULT: NULL ---DESCRIPTION-- -

- If HTML Purifier's tag set is unsatisfactory for your needs, you can - overload it with your own list of tags to allow. If you change - this, you probably also want to change %HTML.AllowedAttributes; see - also %HTML.Allowed which lets you set allowed elements and - attributes at the same time. -

-

- If you attempt to allow an element that HTML Purifier does not know - about, HTML Purifier will raise an error. You will need to manually - tell HTML Purifier about this element by using the - advanced customization features. -

-

- Warning: If another directive conflicts with the - elements here, that directive will win and override. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt deleted file mode 100644 index 5a59a55..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt +++ /dev/null @@ -1,20 +0,0 @@ -HTML.AllowedModules -TYPE: lookup/null -VERSION: 2.0.0 -DEFAULT: NULL ---DESCRIPTION-- - -

- A doctype comes with a set of usual modules to use. Without having - to mucking about with the doctypes, you can quickly activate or - disable these modules by specifying which modules you wish to allow - with this directive. This is most useful for unit testing specific - modules, although end users may find it useful for their own ends. -

-

- If you specify a module that does not exist, the manager will silently - fail to use it, so be careful! User-defined modules are not affected - by this directive. Modules defined in %HTML.CoreModules are not - affected by this directive. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt deleted file mode 100644 index 151fb7b..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt +++ /dev/null @@ -1,11 +0,0 @@ -HTML.Attr.Name.UseCDATA -TYPE: bool -DEFAULT: false -VERSION: 4.0.0 ---DESCRIPTION-- -The W3C specification DTD defines the name attribute to be CDATA, not ID, due -to limitations of DTD. In certain documents, this relaxed behavior is desired, -whether it is to specify duplicate names, or to specify names that would be -illegal IDs (for example, names that begin with a digit.) Set this configuration -directive to true to use the relaxed parsing rules. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt deleted file mode 100644 index 45ae469..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt +++ /dev/null @@ -1,18 +0,0 @@ -HTML.BlockWrapper -TYPE: string -VERSION: 1.3.0 -DEFAULT: 'p' ---DESCRIPTION-- - -

- String name of element to wrap inline elements that are inside a block - context. This only occurs in the children of blockquote in strict mode. -

-

- Example: by default value, - <blockquote>Foo</blockquote> would become - <blockquote><p>Foo</p></blockquote>. - The <p> tags can be replaced with whatever you desire, - as long as it is a block level element. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt deleted file mode 100644 index 5246188..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt +++ /dev/null @@ -1,23 +0,0 @@ -HTML.CoreModules -TYPE: lookup -VERSION: 2.0.0 ---DEFAULT-- -array ( - 'Structure' => true, - 'Text' => true, - 'Hypertext' => true, - 'List' => true, - 'NonXMLCommonAttributes' => true, - 'XMLCommonAttributes' => true, - 'CommonAttributes' => true, -) ---DESCRIPTION-- - -

- Certain modularized doctypes (XHTML, namely), have certain modules - that must be included for the doctype to be an conforming document - type: put those modules here. By default, XHTML's core modules - are used. You can set this to a blank array to disable core module - protection, but this is not recommended. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt deleted file mode 100644 index a64e3d7..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt +++ /dev/null @@ -1,9 +0,0 @@ -HTML.CustomDoctype -TYPE: string/null -VERSION: 2.0.1 -DEFAULT: NULL ---DESCRIPTION-- - -A custom doctype for power-users who defined there own document -type. This directive only applies when %HTML.Doctype is blank. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt deleted file mode 100644 index 103db75..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt +++ /dev/null @@ -1,33 +0,0 @@ -HTML.DefinitionID -TYPE: string/null -DEFAULT: NULL -VERSION: 2.0.0 ---DESCRIPTION-- - -

- Unique identifier for a custom-built HTML definition. If you edit - the raw version of the HTMLDefinition, introducing changes that the - configuration object does not reflect, you must specify this variable. - If you change your custom edits, you should change this directive, or - clear your cache. Example: -

-
-$config = HTMLPurifier_Config::createDefault();
-$config->set('HTML', 'DefinitionID', '1');
-$def = $config->getHTMLDefinition();
-$def->addAttribute('a', 'tabindex', 'Number');
-
-

- In the above example, the configuration is still at the defaults, but - using the advanced API, an extra attribute has been added. The - configuration object normally has no way of knowing that this change - has taken place, so it needs an extra directive: %HTML.DefinitionID. - If someone else attempts to use the default configuration, these two - pieces of code will not clobber each other in the cache, since one has - an extra directive attached to it. -

-

- You must specify a value to this directive to use the - advanced API features. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt deleted file mode 100644 index 229ae02..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt +++ /dev/null @@ -1,16 +0,0 @@ -HTML.DefinitionRev -TYPE: int -VERSION: 2.0.0 -DEFAULT: 1 ---DESCRIPTION-- - -

- Revision identifier for your custom definition specified in - %HTML.DefinitionID. This serves the same purpose: uniquely identifying - your custom definition, but this one does so in a chronological - context: revision 3 is more up-to-date then revision 2. Thus, when - this gets incremented, the cache handling is smart enough to clean - up any older revisions of your definition as well as flush the - cache. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt deleted file mode 100644 index 9dab497..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt +++ /dev/null @@ -1,11 +0,0 @@ -HTML.Doctype -TYPE: string/null -DEFAULT: NULL ---DESCRIPTION-- -Doctype to use during filtering. Technically speaking this is not actually -a doctype (as it does not identify a corresponding DTD), but we are using -this name for sake of simplicity. When non-blank, this will override any -older directives like %HTML.XHTML or %HTML.Strict. ---ALLOWED-- -'HTML 4.01 Transitional', 'HTML 4.01 Strict', 'XHTML 1.0 Transitional', 'XHTML 1.0 Strict', 'XHTML 1.1' ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt deleted file mode 100644 index 7878dc0..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt +++ /dev/null @@ -1,11 +0,0 @@ -HTML.FlashAllowFullScreen -TYPE: bool -VERSION: 4.2.0 -DEFAULT: false ---DESCRIPTION-- -

- Whether or not to permit embedded Flash content from - %HTML.SafeObject to expand to the full screen. Corresponds to - the allowFullScreen parameter. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt deleted file mode 100644 index 57358f9..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt +++ /dev/null @@ -1,21 +0,0 @@ -HTML.ForbiddenAttributes -TYPE: lookup -VERSION: 3.1.0 -DEFAULT: array() ---DESCRIPTION-- -

- While this directive is similar to %HTML.AllowedAttributes, for - forwards-compatibility with XML, this attribute has a different syntax. Instead of - tag.attr, use tag@attr. To disallow href - attributes in a tags, set this directive to - a@href. You can also disallow an attribute globally with - attr or *@attr (either syntax is fine; the latter - is provided for consistency with %HTML.AllowedAttributes). -

-

- Warning: This directive complements %HTML.ForbiddenElements, - accordingly, check - out that directive for a discussion of why you - should think twice before using this directive. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt deleted file mode 100644 index 93a53e1..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt +++ /dev/null @@ -1,20 +0,0 @@ -HTML.ForbiddenElements -TYPE: lookup -VERSION: 3.1.0 -DEFAULT: array() ---DESCRIPTION-- -

- This was, perhaps, the most requested feature ever in HTML - Purifier. Please don't abuse it! This is the logical inverse of - %HTML.AllowedElements, and it will override that directive, or any - other directive. -

-

- If possible, %HTML.Allowed is recommended over this directive, because it - can sometimes be difficult to tell whether or not you've forbidden all of - the behavior you would like to disallow. If you forbid img - with the expectation of preventing images on your site, you'll be in for - a nasty surprise when people start using the background-image - CSS property. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt deleted file mode 100644 index e424c38..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt +++ /dev/null @@ -1,14 +0,0 @@ -HTML.MaxImgLength -TYPE: int/null -DEFAULT: 1200 -VERSION: 3.1.1 ---DESCRIPTION-- -

- This directive controls the maximum number of pixels in the width and - height attributes in img tags. This is - in place to prevent imagecrash attacks, disable with null at your own risk. - This directive is similar to %CSS.MaxImgLength, and both should be - concurrently edited, although there are - subtle differences in the input format (the HTML max is an integer). -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt deleted file mode 100644 index 700b309..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt +++ /dev/null @@ -1,7 +0,0 @@ -HTML.Nofollow -TYPE: bool -VERSION: 4.3.0 -DEFAULT: FALSE ---DESCRIPTION-- -If enabled, nofollow rel attributes are added to all outgoing links. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt deleted file mode 100644 index 62e8e16..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt +++ /dev/null @@ -1,12 +0,0 @@ -HTML.Parent -TYPE: string -VERSION: 1.3.0 -DEFAULT: 'div' ---DESCRIPTION-- - -

- String name of element that HTML fragment passed to library will be - inserted in. An interesting variation would be using span as the - parent element, meaning that only inline tags would be allowed. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt deleted file mode 100644 index dfb7204..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt +++ /dev/null @@ -1,12 +0,0 @@ -HTML.Proprietary -TYPE: bool -VERSION: 3.1.0 -DEFAULT: false ---DESCRIPTION-- -

- Whether or not to allow proprietary elements and attributes in your - documents, as per HTMLPurifier_HTMLModule_Proprietary. - Warning: This can cause your documents to stop - validating! -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt deleted file mode 100644 index cdda09a..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt +++ /dev/null @@ -1,13 +0,0 @@ -HTML.SafeEmbed -TYPE: bool -VERSION: 3.1.1 -DEFAULT: false ---DESCRIPTION-- -

- Whether or not to permit embed tags in documents, with a number of extra - security features added to prevent script execution. This is similar to - what websites like MySpace do to embed tags. Embed is a proprietary - element and will cause your website to stop validating; you should - see if you can use %Output.FlashCompat with %HTML.SafeObject instead - first.

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt deleted file mode 100644 index ceb342e..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt +++ /dev/null @@ -1,13 +0,0 @@ -HTML.SafeObject -TYPE: bool -VERSION: 3.1.1 -DEFAULT: false ---DESCRIPTION-- -

- Whether or not to permit object tags in documents, with a number of extra - security features added to prevent script execution. This is similar to - what websites like MySpace do to object tags. You should also enable - %Output.FlashCompat in order to generate Internet Explorer - compatibility code for your object tags. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt deleted file mode 100644 index a8b1de5..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt +++ /dev/null @@ -1,9 +0,0 @@ -HTML.Strict -TYPE: bool -VERSION: 1.3.0 -DEFAULT: false -DEPRECATED-VERSION: 1.7.0 -DEPRECATED-USE: HTML.Doctype ---DESCRIPTION-- -Determines whether or not to use Transitional (loose) or Strict rulesets. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt deleted file mode 100644 index b4c271b..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt +++ /dev/null @@ -1,8 +0,0 @@ -HTML.TidyAdd -TYPE: lookup -VERSION: 2.0.0 -DEFAULT: array() ---DESCRIPTION-- - -Fixes to add to the default set of Tidy fixes as per your level. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt deleted file mode 100644 index 4186ccd..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt +++ /dev/null @@ -1,24 +0,0 @@ -HTML.TidyLevel -TYPE: string -VERSION: 2.0.0 -DEFAULT: 'medium' ---DESCRIPTION-- - -

General level of cleanliness the Tidy module should enforce. -There are four allowed values:

-
-
none
-
No extra tidying should be done
-
light
-
Only fix elements that would be discarded otherwise due to - lack of support in doctype
-
medium
-
Enforce best practices
-
heavy
-
Transform all deprecated elements and attributes to standards - compliant equivalents
-
- ---ALLOWED-- -'none', 'light', 'medium', 'heavy' ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt deleted file mode 100644 index 996762b..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt +++ /dev/null @@ -1,8 +0,0 @@ -HTML.TidyRemove -TYPE: lookup -VERSION: 2.0.0 -DEFAULT: array() ---DESCRIPTION-- - -Fixes to remove from the default set of Tidy fixes as per your level. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt deleted file mode 100644 index 1db9237..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt +++ /dev/null @@ -1,9 +0,0 @@ -HTML.Trusted -TYPE: bool -VERSION: 2.0.0 -DEFAULT: false ---DESCRIPTION-- -Indicates whether or not the user input is trusted or not. If the input is -trusted, a more expansive set of allowed tags and attributes will be used. -See also %CSS.Trusted. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt deleted file mode 100644 index 2a47e38..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt +++ /dev/null @@ -1,11 +0,0 @@ -HTML.XHTML -TYPE: bool -DEFAULT: true -VERSION: 1.1.0 -DEPRECATED-VERSION: 1.7.0 -DEPRECATED-USE: HTML.Doctype ---DESCRIPTION-- -Determines whether or not output is XHTML 1.0 or HTML 4.01 flavor. ---ALIASES-- -Core.XHTML ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.txt deleted file mode 100644 index f32ceb5..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.txt +++ /dev/null @@ -1,3 +0,0 @@ -HTML -DESCRIPTION: Configuration regarding allowed HTML. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt deleted file mode 100644 index 08921fd..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt +++ /dev/null @@ -1,10 +0,0 @@ -Output.CommentScriptContents -TYPE: bool -VERSION: 2.0.0 -DEFAULT: true ---DESCRIPTION-- -Determines whether or not HTML Purifier should attempt to fix up the -contents of script tags for legacy browsers with comments. ---ALIASES-- -Core.CommentScriptContents ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.FixInnerHTML.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.FixInnerHTML.txt deleted file mode 100644 index d6f0d9f..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.FixInnerHTML.txt +++ /dev/null @@ -1,15 +0,0 @@ -Output.FixInnerHTML -TYPE: bool -VERSION: 4.3.0 -DEFAULT: true ---DESCRIPTION-- -

- If true, HTML Purifier will protect against Internet Explorer's - mishandling of the innerHTML attribute by appending - a space to any attribute that does not contain angled brackets, spaces - or quotes, but contains a backtick. This slightly changes the - semantics of any given attribute, so if this is unacceptable and - you do not use innerHTML on any of your pages, you can - turn this directive off. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt deleted file mode 100644 index 93398e8..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt +++ /dev/null @@ -1,11 +0,0 @@ -Output.FlashCompat -TYPE: bool -VERSION: 4.1.0 -DEFAULT: false ---DESCRIPTION-- -

- If true, HTML Purifier will generate Internet Explorer compatibility - code for all object code. This is highly recommended if you enable - %HTML.SafeObject. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt deleted file mode 100644 index 79f8ad8..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt +++ /dev/null @@ -1,13 +0,0 @@ -Output.Newline -TYPE: string/null -VERSION: 2.0.1 -DEFAULT: NULL ---DESCRIPTION-- - -

- Newline string to format final output with. If left null, HTML Purifier - will auto-detect the default newline type of the system and use that; - you can manually override it here. Remember, \r\n is Windows, \r - is Mac, and \n is Unix. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt deleted file mode 100644 index 232b023..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt +++ /dev/null @@ -1,14 +0,0 @@ -Output.SortAttr -TYPE: bool -VERSION: 3.2.0 -DEFAULT: false ---DESCRIPTION-- -

- If true, HTML Purifier will sort attributes by name before writing them back - to the document, converting a tag like: <el b="" a="" c="" /> - to <el a="" b="" c="" />. This is a workaround for - a bug in FCKeditor which causes it to swap attributes order, adding noise - to text diffs. If you're not seeing this bug, chances are, you don't need - this directive. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt deleted file mode 100644 index 06bab00..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt +++ /dev/null @@ -1,25 +0,0 @@ -Output.TidyFormat -TYPE: bool -VERSION: 1.1.1 -DEFAULT: false ---DESCRIPTION-- -

- Determines whether or not to run Tidy on the final output for pretty - formatting reasons, such as indentation and wrap. -

-

- This can greatly improve readability for editors who are hand-editing - the HTML, but is by no means necessary as HTML Purifier has already - fixed all major errors the HTML may have had. Tidy is a non-default - extension, and this directive will silently fail if Tidy is not - available. -

-

- If you are looking to make the overall look of your page's source - better, I recommend running Tidy on the entire page rather than just - user-content (after all, the indentation relative to the containing - blocks will be incorrect). -

---ALIASES-- -Core.TidyFormat ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.txt deleted file mode 100644 index 7849d60..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.txt +++ /dev/null @@ -1,3 +0,0 @@ -Output -DESCRIPTION: Configuration relating to the generation of (X)HTML. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt deleted file mode 100644 index 071bc02..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt +++ /dev/null @@ -1,7 +0,0 @@ -Test.ForceNoIconv -TYPE: bool -DEFAULT: false ---DESCRIPTION-- -When set to true, HTMLPurifier_Encoder will act as if iconv does not exist -and use only pure PHP implementations. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Test.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Test.txt deleted file mode 100644 index 5025f9d..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Test.txt +++ /dev/null @@ -1,3 +0,0 @@ -Test -DESCRIPTION: Developer testing configuration for our unit tests. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt deleted file mode 100644 index 666635a..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt +++ /dev/null @@ -1,17 +0,0 @@ -URI.AllowedSchemes -TYPE: lookup ---DEFAULT-- -array ( - 'http' => true, - 'https' => true, - 'mailto' => true, - 'ftp' => true, - 'nntp' => true, - 'news' => true, -) ---DESCRIPTION-- -Whitelist that defines the schemes that a URI is allowed to have. This -prevents XSS attacks from using pseudo-schemes like javascript or mocha. -There is also support for the data and file -URI schemes, but they are not enabled by default. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Base.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Base.txt deleted file mode 100644 index 876f068..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Base.txt +++ /dev/null @@ -1,17 +0,0 @@ -URI.Base -TYPE: string/null -VERSION: 2.1.0 -DEFAULT: NULL ---DESCRIPTION-- - -

- The base URI is the URI of the document this purified HTML will be - inserted into. This information is important if HTML Purifier needs - to calculate absolute URIs from relative URIs, such as when %URI.MakeAbsolute - is on. You may use a non-absolute URI for this value, but behavior - may vary (%URI.MakeAbsolute deals nicely with both absolute and - relative paths, but forwards-compatibility is not guaranteed). - Warning: If set, the scheme on this URI - overrides the one specified by %URI.DefaultScheme. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt deleted file mode 100644 index 728e378..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt +++ /dev/null @@ -1,10 +0,0 @@ -URI.DefaultScheme -TYPE: string -DEFAULT: 'http' ---DESCRIPTION-- - -

- Defines through what scheme the output will be served, in order to - select the proper object validator when no scheme information is present. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt deleted file mode 100644 index f05312b..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt +++ /dev/null @@ -1,11 +0,0 @@ -URI.DefinitionID -TYPE: string/null -VERSION: 2.1.0 -DEFAULT: NULL ---DESCRIPTION-- - -

- Unique identifier for a custom-built URI definition. If you want - to add custom URIFilters, you must specify this value. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt deleted file mode 100644 index 80cfea9..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt +++ /dev/null @@ -1,11 +0,0 @@ -URI.DefinitionRev -TYPE: int -VERSION: 2.1.0 -DEFAULT: 1 ---DESCRIPTION-- - -

- Revision identifier for your custom definition. See - %HTML.DefinitionRev for details. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt deleted file mode 100644 index 71ce025..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt +++ /dev/null @@ -1,14 +0,0 @@ -URI.Disable -TYPE: bool -VERSION: 1.3.0 -DEFAULT: false ---DESCRIPTION-- - -

- Disables all URIs in all forms. Not sure why you'd want to do that - (after all, the Internet's founded on the notion of a hyperlink). -

- ---ALIASES-- -Attr.DisableURI ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt deleted file mode 100644 index 13c122c..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt +++ /dev/null @@ -1,11 +0,0 @@ -URI.DisableExternal -TYPE: bool -VERSION: 1.2.0 -DEFAULT: false ---DESCRIPTION-- -Disables links to external websites. This is a highly effective anti-spam -and anti-pagerank-leech measure, but comes at a hefty price: nolinks or -images outside of your domain will be allowed. Non-linkified URIs will -still be preserved. If you want to be able to link to subdomains or use -absolute URIs, specify %URI.Host for your website. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt deleted file mode 100644 index abcc1ef..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt +++ /dev/null @@ -1,13 +0,0 @@ -URI.DisableExternalResources -TYPE: bool -VERSION: 1.3.0 -DEFAULT: false ---DESCRIPTION-- -Disables the embedding of external resources, preventing users from -embedding things like images from other hosts. This prevents access -tracking (good for email viewers), bandwidth leeching, cross-site request -forging, goatse.cx posting, and other nasties, but also results in a loss -of end-user functionality (they can't directly post a pic they posted from -Flickr anymore). Use it if you don't have a robust user-content moderation -team. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt deleted file mode 100644 index f891de4..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt +++ /dev/null @@ -1,15 +0,0 @@ -URI.DisableResources -TYPE: bool -VERSION: 4.2.0 -DEFAULT: false ---DESCRIPTION-- -

- Disables embedding resources, essentially meaning no pictures. You can - still link to them though. See %URI.DisableExternalResources for why - this might be a good idea. -

-

- Note: While this directive has been available since 1.3.0, - it didn't actually start doing anything until 4.2.0. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Host.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Host.txt deleted file mode 100644 index ee83b12..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Host.txt +++ /dev/null @@ -1,19 +0,0 @@ -URI.Host -TYPE: string/null -VERSION: 1.2.0 -DEFAULT: NULL ---DESCRIPTION-- - -

- Defines the domain name of the server, so we can determine whether or - an absolute URI is from your website or not. Not strictly necessary, - as users should be using relative URIs to reference resources on your - website. It will, however, let you use absolute URIs to link to - subdomains of the domain you post here: i.e. example.com will allow - sub.example.com. However, higher up domains will still be excluded: - if you set %URI.Host to sub.example.com, example.com will be blocked. - Note: This directive overrides %URI.Base because - a given page may be on a sub-domain, but you wish HTML Purifier to be - more relaxed and allow some of the parent domains too. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt deleted file mode 100644 index 0b6df76..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt +++ /dev/null @@ -1,9 +0,0 @@ -URI.HostBlacklist -TYPE: list -VERSION: 1.3.0 -DEFAULT: array() ---DESCRIPTION-- -List of strings that are forbidden in the host of any URI. Use it to kill -domain names of spam, etc. Note that it will catch anything in the domain, -so moo.com will catch moo.com.example.com. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt deleted file mode 100644 index 4214900..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt +++ /dev/null @@ -1,13 +0,0 @@ -URI.MakeAbsolute -TYPE: bool -VERSION: 2.1.0 -DEFAULT: false ---DESCRIPTION-- - -

- Converts all URIs into absolute forms. This is useful when the HTML - being filtered assumes a specific base path, but will actually be - viewed in a different context (and setting an alternate base URI is - not possible). %URI.Base must be set for this directive to work. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt deleted file mode 100644 index 58c81dc..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt +++ /dev/null @@ -1,83 +0,0 @@ -URI.Munge -TYPE: string/null -VERSION: 1.3.0 -DEFAULT: NULL ---DESCRIPTION-- - -

- Munges all browsable (usually http, https and ftp) - absolute URIs into another URI, usually a URI redirection service. - This directive accepts a URI, formatted with a %s where - the url-encoded original URI should be inserted (sample: - http://www.google.com/url?q=%s). -

-

- Uses for this directive: -

-
    -
  • - Prevent PageRank leaks, while being fairly transparent - to users (you may also want to add some client side JavaScript to - override the text in the statusbar). Notice: - Many security experts believe that this form of protection does not deter spam-bots. -
  • -
  • - Redirect users to a splash page telling them they are leaving your - website. While this is poor usability practice, it is often mandated - in corporate environments. -
  • -
-

- Prior to HTML Purifier 3.1.1, this directive also enabled the munging - of browsable external resources, which could break things if your redirection - script was a splash page or used meta tags. To revert to - previous behavior, please use %URI.MungeResources. -

-

- You may want to also use %URI.MungeSecretKey along with this directive - in order to enforce what URIs your redirector script allows. Open - redirector scripts can be a security risk and negatively affect the - reputation of your domain name. -

-

- Starting with HTML Purifier 3.1.1, there is also these substitutions: -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeyDescriptionExample <a href="">
%r1 - The URI embeds a resource
(blank) - The URI is merely a link
%nThe name of the tag this URI came froma
%mThe name of the attribute this URI came fromhref
%pThe name of the CSS property this URI came from, or blank if irrelevant
-

- Admittedly, these letters are somewhat arbitrary; the only stipulation - was that they couldn't be a through f. r is for resource (I would have preferred - e, but you take what you can get), n is for name, m - was picked because it came after n (and I couldn't use a), p is for - property. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt deleted file mode 100644 index 6fce0fd..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt +++ /dev/null @@ -1,17 +0,0 @@ -URI.MungeResources -TYPE: bool -VERSION: 3.1.1 -DEFAULT: false ---DESCRIPTION-- -

- If true, any URI munging directives like %URI.Munge - will also apply to embedded resources, such as <img src="">. - Be careful enabling this directive if you have a redirector script - that does not use the Location HTTP header; all of your images - and other embedded resources will break. -

-

- Warning: It is strongly advised you use this in conjunction - %URI.MungeSecretKey to mitigate the security risk of an open redirector. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt deleted file mode 100644 index 0d00f62..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt +++ /dev/null @@ -1,30 +0,0 @@ -URI.MungeSecretKey -TYPE: string/null -VERSION: 3.1.1 -DEFAULT: NULL ---DESCRIPTION-- -

- This directive enables secure checksum generation along with %URI.Munge. - It should be set to a secure key that is not shared with anyone else. - The checksum can be placed in the URI using %t. Use of this checksum - affords an additional level of protection by allowing a redirector - to check if a URI has passed through HTML Purifier with this line: -

- -
$checksum === sha1($secret_key . ':' . $url)
- -

- If the output is TRUE, the redirector script should accept the URI. -

- -

- Please note that it would still be possible for an attacker to procure - secure hashes en-mass by abusing your website's Preview feature or the - like, but this service affords an additional level of protection - that should be combined with website blacklisting. -

- -

- Remember this has no effect if %URI.Munge is not on. -

---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt deleted file mode 100644 index 23331a4..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt +++ /dev/null @@ -1,9 +0,0 @@ -URI.OverrideAllowedSchemes -TYPE: bool -DEFAULT: true ---DESCRIPTION-- -If this is set to true (which it is by default), you can override -%URI.AllowedSchemes by simply registering a HTMLPurifier_URIScheme to the -registry. If false, you will also have to update that directive in order -to add more schemes. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.txt b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.txt deleted file mode 100644 index a13060f..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.txt +++ /dev/null @@ -1,3 +0,0 @@ -URI -DESCRIPTION: Features regarding Uniform Resource Identifiers. ---# vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/info.ini b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/info.ini deleted file mode 100644 index 5de4505..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ConfigSchema/schema/info.ini +++ /dev/null @@ -1,3 +0,0 @@ -name = "HTML Purifier" - -; vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ContentSets.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ContentSets.php deleted file mode 100644 index 3b6e96f..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ContentSets.php +++ /dev/null @@ -1,155 +0,0 @@ - true) indexed by name. - * @note This is in HTMLPurifier_HTMLDefinition->info_content_sets - */ - public $lookup = array(); - - /** - * Synchronized list of defined content sets (keys of info) - */ - protected $keys = array(); - /** - * Synchronized list of defined content values (values of info) - */ - protected $values = array(); - - /** - * Merges in module's content sets, expands identifiers in the content - * sets and populates the keys, values and lookup member variables. - * @param $modules List of HTMLPurifier_HTMLModule - */ - public function __construct($modules) { - if (!is_array($modules)) $modules = array($modules); - // populate content_sets based on module hints - // sorry, no way of overloading - foreach ($modules as $module_i => $module) { - foreach ($module->content_sets as $key => $value) { - $temp = $this->convertToLookup($value); - if (isset($this->lookup[$key])) { - // add it into the existing content set - $this->lookup[$key] = array_merge($this->lookup[$key], $temp); - } else { - $this->lookup[$key] = $temp; - } - } - } - $old_lookup = false; - while ($old_lookup !== $this->lookup) { - $old_lookup = $this->lookup; - foreach ($this->lookup as $i => $set) { - $add = array(); - foreach ($set as $element => $x) { - if (isset($this->lookup[$element])) { - $add += $this->lookup[$element]; - unset($this->lookup[$i][$element]); - } - } - $this->lookup[$i] += $add; - } - } - - foreach ($this->lookup as $key => $lookup) { - $this->info[$key] = implode(' | ', array_keys($lookup)); - } - $this->keys = array_keys($this->info); - $this->values = array_values($this->info); - } - - /** - * Accepts a definition; generates and assigns a ChildDef for it - * @param $def HTMLPurifier_ElementDef reference - * @param $module Module that defined the ElementDef - */ - public function generateChildDef(&$def, $module) { - if (!empty($def->child)) return; // already done! - $content_model = $def->content_model; - if (is_string($content_model)) { - // Assume that $this->keys is alphanumeric - $def->content_model = preg_replace_callback( - '/\b(' . implode('|', $this->keys) . ')\b/', - array($this, 'generateChildDefCallback'), - $content_model - ); - //$def->content_model = str_replace( - // $this->keys, $this->values, $content_model); - } - $def->child = $this->getChildDef($def, $module); - } - - public function generateChildDefCallback($matches) { - return $this->info[$matches[0]]; - } - - /** - * Instantiates a ChildDef based on content_model and content_model_type - * member variables in HTMLPurifier_ElementDef - * @note This will also defer to modules for custom HTMLPurifier_ChildDef - * subclasses that need content set expansion - * @param $def HTMLPurifier_ElementDef to have ChildDef extracted - * @return HTMLPurifier_ChildDef corresponding to ElementDef - */ - public function getChildDef($def, $module) { - $value = $def->content_model; - if (is_object($value)) { - trigger_error( - 'Literal object child definitions should be stored in '. - 'ElementDef->child not ElementDef->content_model', - E_USER_NOTICE - ); - return $value; - } - switch ($def->content_model_type) { - case 'required': - return new HTMLPurifier_ChildDef_Required($value); - case 'optional': - return new HTMLPurifier_ChildDef_Optional($value); - case 'empty': - return new HTMLPurifier_ChildDef_Empty(); - case 'custom': - return new HTMLPurifier_ChildDef_Custom($value); - } - // defer to its module - $return = false; - if ($module->defines_child_def) { // save a func call - $return = $module->getChildDef($def); - } - if ($return !== false) return $return; - // error-out - trigger_error( - 'Could not determine which ChildDef class to instantiate', - E_USER_ERROR - ); - return false; - } - - /** - * Converts a string list of elements separated by pipes into - * a lookup array. - * @param $string List of elements - * @return Lookup array of elements - */ - protected function convertToLookup($string) { - $array = explode('|', str_replace(' ', '', $string)); - $ret = array(); - foreach ($array as $i => $k) { - $ret[$k] = true; - } - return $ret; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Context.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Context.php deleted file mode 100644 index 9ddf0c5..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Context.php +++ /dev/null @@ -1,82 +0,0 @@ -_storage[$name])) { - trigger_error("Name $name produces collision, cannot re-register", - E_USER_ERROR); - return; - } - $this->_storage[$name] =& $ref; - } - - /** - * Retrieves a variable reference from the context. - * @param $name String name - * @param $ignore_error Boolean whether or not to ignore error - */ - public function &get($name, $ignore_error = false) { - if (!isset($this->_storage[$name])) { - if (!$ignore_error) { - trigger_error("Attempted to retrieve non-existent variable $name", - E_USER_ERROR); - } - $var = null; // so we can return by reference - return $var; - } - return $this->_storage[$name]; - } - - /** - * Destorys a variable in the context. - * @param $name String name - */ - public function destroy($name) { - if (!isset($this->_storage[$name])) { - trigger_error("Attempted to destroy non-existent variable $name", - E_USER_ERROR); - return; - } - unset($this->_storage[$name]); - } - - /** - * Checks whether or not the variable exists. - * @param $name String name - */ - public function exists($name) { - return isset($this->_storage[$name]); - } - - /** - * Loads a series of variables from an associative array - * @param $context_array Assoc array of variables to load - */ - public function loadArray($context_array) { - foreach ($context_array as $key => $discard) { - $this->register($key, $context_array[$key]); - } - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Definition.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Definition.php deleted file mode 100644 index c7f82eb..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Definition.php +++ /dev/null @@ -1,50 +0,0 @@ -setup) return; - $this->setup = true; - $this->doSetup($config); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache.php deleted file mode 100644 index c6e1e38..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache.php +++ /dev/null @@ -1,108 +0,0 @@ -type = $type; - } - - /** - * Generates a unique identifier for a particular configuration - * @param Instance of HTMLPurifier_Config - */ - public function generateKey($config) { - return $config->version . ',' . // possibly replace with function calls - $config->getBatchSerial($this->type) . ',' . - $config->get($this->type . '.DefinitionRev'); - } - - /** - * Tests whether or not a key is old with respect to the configuration's - * version and revision number. - * @param $key Key to test - * @param $config Instance of HTMLPurifier_Config to test against - */ - public function isOld($key, $config) { - if (substr_count($key, ',') < 2) return true; - list($version, $hash, $revision) = explode(',', $key, 3); - $compare = version_compare($version, $config->version); - // version mismatch, is always old - if ($compare != 0) return true; - // versions match, ids match, check revision number - if ( - $hash == $config->getBatchSerial($this->type) && - $revision < $config->get($this->type . '.DefinitionRev') - ) return true; - return false; - } - - /** - * Checks if a definition's type jives with the cache's type - * @note Throws an error on failure - * @param $def Definition object to check - * @return Boolean true if good, false if not - */ - public function checkDefType($def) { - if ($def->type !== $this->type) { - trigger_error("Cannot use definition of type {$def->type} in cache for {$this->type}"); - return false; - } - return true; - } - - /** - * Adds a definition object to the cache - */ - abstract public function add($def, $config); - - /** - * Unconditionally saves a definition object to the cache - */ - abstract public function set($def, $config); - - /** - * Replace an object in the cache - */ - abstract public function replace($def, $config); - - /** - * Retrieves a definition object from the cache - */ - abstract public function get($config); - - /** - * Removes a definition object to the cache - */ - abstract public function remove($config); - - /** - * Clears all objects from cache - */ - abstract public function flush($config); - - /** - * Clears all expired (older version or revision) objects from cache - * @note Be carefuly implementing this method as flush. Flush must - * not interfere with other Definition types, and cleanup() - * should not be repeatedly called by userland code. - */ - abstract public function cleanup($config); - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator.php deleted file mode 100644 index b0fb6d0..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator.php +++ /dev/null @@ -1,62 +0,0 @@ -copy(); - // reference is necessary for mocks in PHP 4 - $decorator->cache =& $cache; - $decorator->type = $cache->type; - return $decorator; - } - - /** - * Cross-compatible clone substitute - */ - public function copy() { - return new HTMLPurifier_DefinitionCache_Decorator(); - } - - public function add($def, $config) { - return $this->cache->add($def, $config); - } - - public function set($def, $config) { - return $this->cache->set($def, $config); - } - - public function replace($def, $config) { - return $this->cache->replace($def, $config); - } - - public function get($config) { - return $this->cache->get($config); - } - - public function remove($config) { - return $this->cache->remove($config); - } - - public function flush($config) { - return $this->cache->flush($config); - } - - public function cleanup($config) { - return $this->cache->cleanup($config); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php deleted file mode 100644 index d4cc35c..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php +++ /dev/null @@ -1,43 +0,0 @@ -definitions[$this->generateKey($config)] = $def; - return $status; - } - - public function set($def, $config) { - $status = parent::set($def, $config); - if ($status) $this->definitions[$this->generateKey($config)] = $def; - return $status; - } - - public function replace($def, $config) { - $status = parent::replace($def, $config); - if ($status) $this->definitions[$this->generateKey($config)] = $def; - return $status; - } - - public function get($config) { - $key = $this->generateKey($config); - if (isset($this->definitions[$key])) return $this->definitions[$key]; - $this->definitions[$key] = parent::get($config); - return $this->definitions[$key]; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator/Template.php.in b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator/Template.php.in deleted file mode 100644 index 21a8fcf..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator/Template.php.in +++ /dev/null @@ -1,47 +0,0 @@ -checkDefType($def)) return; - $file = $this->generateFilePath($config); - if (file_exists($file)) return false; - if (!$this->_prepareDir($config)) return false; - return $this->_write($file, serialize($def), $config); - } - - public function set($def, $config) { - if (!$this->checkDefType($def)) return; - $file = $this->generateFilePath($config); - if (!$this->_prepareDir($config)) return false; - return $this->_write($file, serialize($def), $config); - } - - public function replace($def, $config) { - if (!$this->checkDefType($def)) return; - $file = $this->generateFilePath($config); - if (!file_exists($file)) return false; - if (!$this->_prepareDir($config)) return false; - return $this->_write($file, serialize($def), $config); - } - - public function get($config) { - $file = $this->generateFilePath($config); - if (!file_exists($file)) return false; - return unserialize(file_get_contents($file)); - } - - public function remove($config) { - $file = $this->generateFilePath($config); - if (!file_exists($file)) return false; - return unlink($file); - } - - public function flush($config) { - if (!$this->_prepareDir($config)) return false; - $dir = $this->generateDirectoryPath($config); - $dh = opendir($dir); - while (false !== ($filename = readdir($dh))) { - if (empty($filename)) continue; - if ($filename[0] === '.') continue; - unlink($dir . '/' . $filename); - } - } - - public function cleanup($config) { - if (!$this->_prepareDir($config)) return false; - $dir = $this->generateDirectoryPath($config); - $dh = opendir($dir); - while (false !== ($filename = readdir($dh))) { - if (empty($filename)) continue; - if ($filename[0] === '.') continue; - $key = substr($filename, 0, strlen($filename) - 4); - if ($this->isOld($key, $config)) unlink($dir . '/' . $filename); - } - } - - /** - * Generates the file path to the serial file corresponding to - * the configuration and definition name - * @todo Make protected - */ - public function generateFilePath($config) { - $key = $this->generateKey($config); - return $this->generateDirectoryPath($config) . '/' . $key . '.ser'; - } - - /** - * Generates the path to the directory contain this cache's serial files - * @note No trailing slash - * @todo Make protected - */ - public function generateDirectoryPath($config) { - $base = $this->generateBaseDirectoryPath($config); - return $base . '/' . $this->type; - } - - /** - * Generates path to base directory that contains all definition type - * serials - * @todo Make protected - */ - public function generateBaseDirectoryPath($config) { - $base = $config->get('Cache.SerializerPath'); - $base = is_null($base) ? HTMLPURIFIER_PREFIX . '/HTMLPurifier/DefinitionCache/Serializer' : $base; - return $base; - } - - /** - * Convenience wrapper function for file_put_contents - * @param $file File name to write to - * @param $data Data to write into file - * @param $config Config object - * @return Number of bytes written if success, or false if failure. - */ - private function _write($file, $data, $config) { - $result = file_put_contents($file, $data); - if ($result !== false) { - // set permissions of the new file (no execute) - $chmod = $config->get('Cache.SerializerPermissions'); - if (!$chmod) { - $chmod = 0644; // invalid config or simpletest - } - $chmod = $chmod & 0666; - chmod($file, $chmod); - } - return $result; - } - - /** - * Prepares the directory that this type stores the serials in - * @param $config Config object - * @return True if successful - */ - private function _prepareDir($config) { - $directory = $this->generateDirectoryPath($config); - $chmod = $config->get('Cache.SerializerPermissions'); - if (!$chmod) { - $chmod = 0755; // invalid config or simpletest - } - if (!is_dir($directory)) { - $base = $this->generateBaseDirectoryPath($config); - if (!is_dir($base)) { - trigger_error('Base directory '.$base.' does not exist, - please create or change using %Cache.SerializerPath', - E_USER_WARNING); - return false; - } elseif (!$this->_testPermissions($base, $chmod)) { - return false; - } - $old = umask(0000); - mkdir($directory, $chmod); - umask($old); - } elseif (!$this->_testPermissions($directory, $chmod)) { - return false; - } - return true; - } - - /** - * Tests permissions on a directory and throws out friendly - * error messages and attempts to chmod it itself if possible - * @param $dir Directory path - * @param $chmod Permissions - * @return True if directory writable - */ - private function _testPermissions($dir, $chmod) { - // early abort, if it is writable, everything is hunky-dory - if (is_writable($dir)) return true; - if (!is_dir($dir)) { - // generally, you'll want to handle this beforehand - // so a more specific error message can be given - trigger_error('Directory '.$dir.' does not exist', - E_USER_WARNING); - return false; - } - if (function_exists('posix_getuid')) { - // POSIX system, we can give more specific advice - if (fileowner($dir) === posix_getuid()) { - // we can chmod it ourselves - $chmod = $chmod | 0700; - if (chmod($dir, $chmod)) return true; - } elseif (filegroup($dir) === posix_getgid()) { - $chmod = $chmod | 0070; - } else { - // PHP's probably running as nobody, so we'll - // need to give global permissions - $chmod = $chmod | 0777; - } - trigger_error('Directory '.$dir.' not writable, '. - 'please chmod to ' . decoct($chmod), - E_USER_WARNING); - } else { - // generic error message - trigger_error('Directory '.$dir.' not writable, '. - 'please alter file permissions', - E_USER_WARNING); - } - return false; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/CSS/4.1.0,801ad73acbcf9d3127e1d01768d26453,1.ser b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/CSS/4.1.0,801ad73acbcf9d3127e1d01768d26453,1.ser deleted file mode 100644 index 7af3bad39add6809e13aad6ebb9556b78522d0d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22628 zcmeHPTaVke67FyDV*vw}?e#_bbegs}1=1#H((}5IEqTpTS#l^TyJ?aC-fxB+NzSfa zM`9#3=u4udDRM;4<(mun%AYR$(SP6m{PK07)lNnF?!}uo-$y%@s9dGV$e;OtX8znC zq8;J{jG<^5^J%GWdV;Tw`>af!JMytoz?MaE;wKVnA0rr+tq; zwlO<_H!W2x2SXtX;$X?zfN#>nQ0RhMv2;0;yxApn_;V5G>If+?+6!WnspOud!frfX zJ_L^p9rtE_Ews90dJNBn>M2*)KPED(mx&fJ`RwpHnpTS0ZTBZIqIEdTDX#hRd z-x`YjzIqLNH+w)4yEJj8Hk+deUOLEOlIlYc6H5_}K!eJGH@4J3EC_9%ZesPWVEZ)f z-~2#x@dCaNv;w^9ll!Iw8J;X50mTeU8jrWZ5rB=>v3ItELXA~s*=~GH3G4v?_b9ru zc)&U;Wac9NBX$GWu`L5wIB2=r!WloIKYh2hAT?AOOQ;put-wj+(inh7h_ACcf7SD}tAuR=}0He=- z)^ET5WZ@gM2^_~`pfhqX@fwu!$!qBP+WhJ>!PeCTXOUO>L$Xcb`0<+%_>(tZpLVgY zgD+`99brQ9oZyr%XeH+>xT_xcalW<>HxqgAU@X9&hM;e~+ymF3dImfh|V=8mZWw^PFww4xeYMMTNtfVYD zY@#sxHOkTg+)Qx~!b#V8EEwgwjx9W4z>iAfeQ{m)5~$)02XBn7gFHi0C3ME>&wI{> z!tKMRz=)hfCg=bjL5F8GIDVb6b@}4U2}RFgzg!1NwgXspv81g+e*`cAEg7f(!A71I z5(~kmo5Fd51ZZu^%1fK|A;oqK!iU_ZF=C@GOfr_`#FW&-u`hTQpF!srXBlwpCfNRt zFkg{`V@H_7aC{5B0LiRTrK4liukX(B4=j~XVjNJ8F%xNH4hE5Gt(rJ?O-zg}Oww`n zX8)W#1w^SWZ;El!2Mm?I4^#D99>}74?T)L(g6ExqI z68c)aVH2AKJ+NSLl-yIK?Ug^n&YsmPFHN^Hs);v|HW}Ui0wx7-)1MU8q(84!J03!z zc+X;G>#xkPX=jPBn3=j7BW#C28fk-^mrXZa{ElC^tGtfMKmp9eT@u{~P0~Wwe(bgV zKvDBFQ@PV)cgChy|BpOx#v^dSSjCX;tPpCOjGplWXKrn27qIu!1dyYx*8U96O-r+D z@|>J58wyzvywk+gPzWRNRON+-LKWnpGEy!~`bC9a*(R%zPra%eiUDx~{fTB1cKzg6 zi$MiLQaGmioDxTA)JqWHx`1WS1%V9Xw$(cNgmwvGE(rh>e0&^p z)rsIH80lJz1x{rT3Zg<;RLII&-Z;>v5|uzc4^g&IC4iZyY@#XvjKY5-hOd0e|Kly5 z#?&6WDgm%;_*I6%2*-9EXY4}30`JBuiN^cLl&1Grc7a?&J1OHThQ6%pHNjaD@aux9 zEx2u9z7AEvLT(126RuzVYj>#&`2+wuK;NrmY^#j>6VTEOUd&R6V=bvexXkUcEnmM? zX_`8eI5B;m*vOKks8Xg=xppw>q;X%{XIpBdXrZYW? zYT6ch6tOj-$e|)_M-z;V(Bw*!wjv1bx230FRmvaHu`0!0aIL0FaAwy@JtP5Jb=YTlx)l ztZibU5hr$H(m!JoECTArpJY){vjDY+LOUcpo=c@(8yVpkS)`rj(GjDMljlErlFSF_9a08^36KA{Npkfr{w+*iR zjfeIl4$J>&rt0YQhJ4_Iv#dp9(c}Um=(~DO-`)Zd^9?hkOz`_Ajrlw!X#!5b;fkWY zz5Hi};2oXgqw8q!J3rmvX~s_rYUigVo^JSQg{K8St?{(vCmhmK{>nVkdCRqVbX9-V zTm=9S5Iefy!|5eqBR+h#7!&7E4d`I0u(zpbA4f3J3{=9+^I>uv^$>yE@?97)bFAxi*QaQz;y^P z90NFT2F-=zvjow`=Ax1I5T@0lfy-Ik%z810(N$r?S*<+4{dMCw_yDJ}J>NIK`+`{v z2EWQlvaTD_VMb8*KGM0`2C=(~BAbSON)Ns%d#(uEK!7(mQ%?B9B!W3kl@%Mqpu7cH zf#ZtwH<{Inp9!Mib#s26(u@Q`P2m}?RXn*9Q51Z2wG6*iH8ZODhgP#14}A!kD0@@D zRabjn7c}bvC_$>MrE^)S4L&`KHqYNz2!HhwOm$wO!t!LVMkMLFZdY1>Kz!Z99+ww! iU39OIqAI$3&;e@?SEpQ?E{};-;V#w!G!t!S9yP{ z--(jrwDUUX@AS$O!El&$UVrLuY+kG4T^vrrq(CirT<-35`<=W9l5r5HN!WQk?Dt+v zr9n}kj-bEGI=B0sQ5@tsE8Xl}tMm=-M2+%(g9Ev(zrm;W`<)5ib`t#^j#+aTHShI1 zS@>-hW$x5JId1MmxB>5rtBp@?RQ>*K=YI9#t&6CL@l~iAg@sigg%`#B>&=VHvR?H6 z!g>$Be7R?}7_4!m<95@_zDs744u%|^+e5FN1#vVU;CB{cXaemWR14fh)|^rlvuVZ`Kx z(HN)VpvZzGKTfmBV4C5LgMPPv#Sg+uU%#H_MRfzG?r9Xu{My81Zw%G}uW;^unsQAA zvFlvS@gR=V^FcV77MHbUQCv>Zy3FI$J)^}?*Om;#=6+)(>Y_r|2cs-aE+@76Mo}UC z&sE0>aGbb{D19Buy5Tjv&^LDlosFS^hK-VM9{1I+3?ttdu0-w`3`0Iam%1{VDlkgg6hA!lmr#ll zbfdpE90T5bDVq2O_<5r&n)-?`S(3DQ3iqVLzrs=do*}0Hahmv3=!SX`@9mq{9*n;F zF2lu{dmDUIluT#79^Q;;&}gdwz64q5yAt;dXGH-3FFy&D#KExod`y#n9Ui=WbM!{< z;3P+vVAY8!-xt?Z4I*QXA&A4TT9y-qgjQK~-MJyw(MAQ~>YJKFJ)MxifC{NbkLEHFV(u%CV zj{>@`1o#Yis3%Hf#))m5;LIYXqPT}*1GxlZgw`44_|;{QBa_A;=NUi_KuO7`;f=94 zo+;q0Fc!yH9N8YU%HoijAb)OfV{l_|)7a%0+^hs{gc~=wF}N|fF}Q)qe3b$m2(}<$ zYzJ)iO7W-Po`ETE2wvZmI)ndweqV}QA$Nj^YZ_#E2zd=&1CpM`Be?ZYuR<7l1u2w@ zvZrAN=~wYCA=9r<;zHxe!{#mJ`Sn1yJNGH~cmcKTOQe``+!b2!*954OARpyv)Y z+`*R?$VCCwBs+iMt5AJyROk)*XXWmbk{Yy>l)p4HSfBbcU{f9 zuI61=^Pa1D&(*x=YTk1-@41@yT+Mr~<~>*Qo~wD!)x7U&-go!xyLPw z_qy%{dR_Mhy{>zOUe~=tuj^i-*L5xQx~_>{*SFF0ZS;H_5D-$z1w}~Dx6$)$Kw9Xo z`ZjvL4G0h2Ro}*jZ)3x^vEka-a@B3Q+VTuFfz4_inU*|S_Xtyb%pH^_G{JvhBt;cLK#8HObzTbx-S`T zAR`rH1cMtBTA0wngcd6nT0lrZYbQe+LmNXILz~s14R?}|*O0X<4Jr+D408-~40BeF zIo_bj5XTV55XTT_9f+fDA%-}HIEFZeIIBY(@g0H`r#*+&Z5oF>QY9{rhjgj~0;13` zCvmnbw>V=u@7y>%hJ%>*#uOhodSl8AhXbn`rFPnZ`&FAnT00pBh5n7EHsscUVGq-9ijEu51jU#H4O_J z^}=SouvIT?*9$wYKvu!=Z^|lMhg3ZaS|FiC%6mMWD5D6Rx%&7**cs?;U}TG6$XGC1 zrh@1WAt`9GPHT1FvP3D+5*Qf->G44(P}F!ndes=86+{tPS%eVGmDC3|L19)ejC}!P z%zzqhK48a&h)?l24}EA6%(EvQYGj=oGPh7$WFSi4mb8lRM0vyA;ybl1GO(aa+?iTL0&@{w zd zEnfGCO__0@Wq^CaClt&Ep9Y@>p9Y^bdygWs{2;gH2O)gIB*);>;M3sK;M3sqe(9CK zl|vkE=xOL_=xOL_=&9%lL+&e0J?9L()z9*}fw%fw&ROI@>LYg7w8p8dyb<{uCGe}X z&xMx=3eY7~2Dy<-L`TcssK1Nriq27gPamX}Z-fkWu(X0c_m;$Y@)9sEH*7a-e>Aq6 z|AZ_#^PgC67S^UkYKzumKwFGWk|lSVA*nct7%1LClUhsl zLH!Dt2bW92Qhf*;ONUdRhQm^Qgp%@`UOZUy&Z>%PO3C*umR8^{KlL|nGF|858+?e8 zuSZB#o_91Nhx!O5!32(qU{~Q%{)Xwz!|`W^3b?ClknqS^D9mbW?W4B4w~vorv!52= zOuMa2F^x?G@_C=o-2#Jveq9K5G6=tC=|_I z``UexH}^}@X70D8yaB_|@I}IGF1%?K_pugtr0gl+!oLm=s<0}x(h#LSKl<#I_`Ypv~V-dluS2B-Vw1Hkkthro3 zE2QC#n;`L47hl$n_Tl*JTztjm8caOX*FDI^R~UA6Gr-{DH5YctEk1B?Nv2q>6u1HX zDf5z7>v!Jsm_Bd1)lm5wj^FV7*3#H!tl^G?0o9{dTZ?TrH#dB2v(MqTS%esPWvW6n zS`SzzOAc!#Mh}!L=Z3Y87iNc$^BR=l&y@Z*y*?_gkBbmBkHZ|UgySG7@3Fn0Ej5Xa3H>jYrZn%+I`XfbL6m?vZ=BL3J!u7}K z6n!Q0@^?;Z$eJouP-y@J{w$CF)^;I3Y!IL~pemp~1D+flMi*i1%zv;vpe&pO7u4a* zH+GY?5vGcdQM|ddwGUx(f>_3?JAF`VZBwO}n5hUHiA1qz2QG{`!BV-iaLOJRoJQ*koc#%f;1LdK>dLWJgjG~2Oie5=$k16HI(;A zD0hEl93cXlmiR)j_SFLVtq6vU-=Jl{MAMT8=Akek9c9tfdz9lImvg*Uzpv7qdrF<2 zcFsDiM_y!P)TMY(v#5ks{KykSSU=50$Dy$@rg=Tuj;(B4*%gp}N4v0>xw5ge*B+7T z#^@rTt5Jd=nzp~+a$D`KeOVkxThMg}J$JC-4%~Kh+r{18cANNZw~62On|OE0_V*Nb z^t!G)dtKL`w!hCDzke^^qP0fyB~JoYqP=K=w!dd|$8TCh!LE?8#Z+Hy+s7 zgcEm(8<`?Y8BkE~rA#%YFP$%92kAXI@$Ar7gckj#6zFd`d$r5ZEvwAgyOf`|{XI=Z zZGT^`-WRsiU*;}gnY_>T_a?a$HNrC|;xBV$Kehe+aGbWazZVBnkZMW!2ay4mX+uHh z!YAAk_gvz*qMDc?d^GejN?Cyby$qyDUI}^u=t3S7X!+6lPi%EACUHLw$Yy8wSamL~ zl^?eu()dOo_AWxjFJ-rGqBG{YwaOau+coZiFH;QW3;1d>g_P{qo7VU4#7ym@(aw=9OKk#I4`Q# zM`0XKVYDLoTyAUh@lm~0r_V-d6tuQRFu<5MXyr#SZsS}LREpZS{^EgzSMDMGYqPVw60 zU}EtW_Z8VJ<{LhI3xw29vcpd#s;Q@-Cs{h1%EvMg5-4bvo=cILphU=zfOJ*IAP*8t z%hN&KJvWVn<;!Q2NswJG{kS89XS!DgLfNLQEfC(Lw|Mt05 zBV{ptW6ab+hb*rKe6q-< zu1+TOs$J&pyT`Dk2pTykd{$2+lmn9+ly3!m^V{>A11cVgnIhopO5uKaf-}@vlF~Wb zE|JiH3{tY9iY?weOvhNzRrxdw%B(puaf{5rKq(BvvX@8Xn}*bPs| zpoQPwTJV2}p)ep=k!sJK^*6V+3C!%Hl=K)XR$xSTpM(l0iPp`N=>12-f}<5~H+2VC zkhl43mKV`623`p%$;T-b$}JNNR+=75=JMqXm|Ju%`PxI`sbcvt`|k-l{^7(|5(#4p zH+Qd-Xgt5ri+7-mZrbEv}Jz1KH4HZ^eVs*P$od;Lyx)NH%=Y z#7qAH2rp9SD3IP(aDK8EEhogi(fpX)+NqFo%U6=);uxQElK>832!o0M< zk}YBuHFmTOZuQSuTtsawcmq%a&|7x>m?CRcFf7GNHM(m_ZTfC9EiTKHd2^936x*;! zi_58~ZqW~+JfPB%dPt1Ymip=76_B*jxf*DJLXoW*5AZvqSpH#b}x?VW^h`*b(FW|Zn3m3BWMD87Rarh_imBcq&9MfP4kvD zrdCDX@Q+eA3Owfw%;7k*(PbyXSz{6<(d0HeDPU|R#|OWAvmC#* zCNZcn0=mKRZ6x+^kZdh%^*^8Amuek+3_frgWVw1jl0-Eg!L5gSwX`+Hrh-p|h&7lL z?-E9gQ+4k3-Ns?_mhy3!obvH3M1yqT3y`p)e+6#>i<}AfLKg^h&qe#(bAdqjTp-Xr z*HL>e#OS^YF}m;W*?0HsyL)<=x|Hi+7F*;@7a1m;48w8$In2}9Gl-liTIe8#kCk^J z!nQfjY^ht2T&!zb>JBq|8w#5Lh;OCRtNEo)*Pc6&aV|5!~`MRzN_hj-&`&wm?C&oEtII0W)$j7k7z;Gw)3T?6hgmg2gF=FZmE+-=(r z`t0MQ!M8P-E?Rk1g4*|!lS-mmDw&r^YGGEwYP0^<#%3vHqu=qD%S0%}CMM02#{8|y zui@s1*^-2vT=begGRFJ2_j2aH9(C+yx8^6JpD(+$qQdG)??^C48r>6KjN+NZop7$( zn3ln;NJnv+3%9GL3s}eMws@mc3o4^@@HkCC@Y~r6i5(XP6gC0$(D!Ztc$s5aex9$u znH<}j8mED60mE-({e7|S!rLwON7T<-GCTDKz6JAe$){c4ICy8mCo=N-%B_wrK*$AT zXlHC?m&;y_gB+F(S)YMSYJ(=UqKJyprm-YqFIC;G$!pL(=2mKMrE1~@xkTjp0_&(u z$*$KhQJ61T3jlmcX6j3l`oxzcP^vGPTPa`&`2HN-N;%L7k=hdRl{k&)iBUQMuPZct zPJ!Mq?!7T!LA{cBws%Ryf*+JNRJ`#bLv?3u5SOc)963f7GRW&W5}&uV0hzcKc}0Yj zxDuY>ALdVTw^NnUIPR=n)9OAbiwT`)oV#zS4Dc8`8hEv3sQEj%#RQs6(!S| zXCc7-BL+}2T4;f2ctIBWtU9=7I71{{AGrgS!~volIzFUDs!E!%u3!zosfqZdL5{G+jzUO!lzxg(@Dv}N?)wWnb+oJ<#u>NZ%2u2&BlLhz!>>aLyIUPnm z7|}YmrA8aEqt79a8wW{|4?u+nQKBLGbR)k8+Q^2mH6dqEWYJgAg|y)yZ0ldi<0dT}r=4HIxj!=#}R_fg}a!#gf70K{ zNmVsG&Fz63mP=wyBP?5U70p$PV_2p9#^kU-!wxu1BkY-HtgF?^uDSajLA3>HFqpvG zKolukT_Dp^H*Kf152vLBnl)v~JM`!pw z&F~|cFz{bRAvkdA0URoB;sDxU{BnulA2l}or?IzjG(ya6{6nm5{36CSe!t-_4<>Bu zEa2VYgl7uoO2YwNCs;uC9hXSbEnz%lwhU;V2PYTdI*?Xg{<}Mh;G{~`Qn4LFktT)&T<&sRk3p0$H?l256~9Z4 zEQGxgy`$MbS)kUn3Yu4@V8u*!iG;-Japtw8xH9$ytN=osBjQ-j4(i;g6>Qa1s{6ha zC5{}Z;|u>lsxgrvz+057hcDT44YIINFKpHeTlKyFJvPP zM&xaI4PCELrOr;5()Qg3fAs1zI`O5qx4xF4l z%+hHVg)mU^iQw>}a!EfCZDY1wOgyPYWAKoJ1B>vV>Op}=#>Mz>HjE>9BH;-vhF@O2 z`tRn!t5; zU7Qw^xW^jH!(R%fRV*j!uXu$HRjph2Zd_~ysFxho!9i!!GOA5 S3=Vm>yazBbESz5LpZ^CBB80C1 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/README b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/README deleted file mode 100644 index 2e35c1c..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/README +++ /dev/null @@ -1,3 +0,0 @@ -This is a dummy file to prevent Git from ignoring this empty directory. - - vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/URI/4.0.0,05c766101e813c246917b022f97b5e6e,1.ser b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/URI/4.0.0,05c766101e813c246917b022f97b5e6e,1.ser deleted file mode 100644 index b0563a0823d425716aed44185de4926044c3c056..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmZvXO$)*>42JzJIeJ?Cg!CpN6a2!Dv$Wc>Vx42n4kG*SrX47PwLn;UCK)EuMc_zTf#ubx*!O=h!hwYW-Cx%<$Ewq!r6SYRqKI1HsujWgK?G rl=K5@6MxbXm diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCacheFactory.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCacheFactory.php deleted file mode 100644 index a6ead62..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCacheFactory.php +++ /dev/null @@ -1,91 +0,0 @@ - array()); - protected $implementations = array(); - protected $decorators = array(); - - /** - * Initialize default decorators - */ - public function setup() { - $this->addDecorator('Cleanup'); - } - - /** - * Retrieves an instance of global definition cache factory. - */ - public static function instance($prototype = null) { - static $instance; - if ($prototype !== null) { - $instance = $prototype; - } elseif ($instance === null || $prototype === true) { - $instance = new HTMLPurifier_DefinitionCacheFactory(); - $instance->setup(); - } - return $instance; - } - - /** - * Registers a new definition cache object - * @param $short Short name of cache object, for reference - * @param $long Full class name of cache object, for construction - */ - public function register($short, $long) { - $this->implementations[$short] = $long; - } - - /** - * Factory method that creates a cache object based on configuration - * @param $name Name of definitions handled by cache - * @param $config Instance of HTMLPurifier_Config - */ - public function create($type, $config) { - $method = $config->get('Cache.DefinitionImpl'); - if ($method === null) { - return new HTMLPurifier_DefinitionCache_Null($type); - } - if (!empty($this->caches[$method][$type])) { - return $this->caches[$method][$type]; - } - if ( - isset($this->implementations[$method]) && - class_exists($class = $this->implementations[$method], false) - ) { - $cache = new $class($type); - } else { - if ($method != 'Serializer') { - trigger_error("Unrecognized DefinitionCache $method, using Serializer instead", E_USER_WARNING); - } - $cache = new HTMLPurifier_DefinitionCache_Serializer($type); - } - foreach ($this->decorators as $decorator) { - $new_cache = $decorator->decorate($cache); - // prevent infinite recursion in PHP 4 - unset($cache); - $cache = $new_cache; - } - $this->caches[$method][$type] = $cache; - return $this->caches[$method][$type]; - } - - /** - * Registers a decorator to add to all new cache objects - * @param - */ - public function addDecorator($decorator) { - if (is_string($decorator)) { - $class = "HTMLPurifier_DefinitionCache_Decorator_$decorator"; - $decorator = new $class; - } - $this->decorators[$decorator->name] = $decorator; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Doctype.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Doctype.php deleted file mode 100644 index 1e3c574..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Doctype.php +++ /dev/null @@ -1,60 +0,0 @@ -renderDoctype. - * If structure changes, please update that function. - */ -class HTMLPurifier_Doctype -{ - /** - * Full name of doctype - */ - public $name; - - /** - * List of standard modules (string identifiers or literal objects) - * that this doctype uses - */ - public $modules = array(); - - /** - * List of modules to use for tidying up code - */ - public $tidyModules = array(); - - /** - * Is the language derived from XML (i.e. XHTML)? - */ - public $xml = true; - - /** - * List of aliases for this doctype - */ - public $aliases = array(); - - /** - * Public DTD identifier - */ - public $dtdPublic; - - /** - * System DTD identifier - */ - public $dtdSystem; - - public function __construct($name = null, $xml = true, $modules = array(), - $tidyModules = array(), $aliases = array(), $dtd_public = null, $dtd_system = null - ) { - $this->name = $name; - $this->xml = $xml; - $this->modules = $modules; - $this->tidyModules = $tidyModules; - $this->aliases = $aliases; - $this->dtdPublic = $dtd_public; - $this->dtdSystem = $dtd_system; - } -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DoctypeRegistry.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DoctypeRegistry.php deleted file mode 100644 index 86049e9..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/DoctypeRegistry.php +++ /dev/null @@ -1,103 +0,0 @@ -doctypes[$doctype->name] = $doctype; - $name = $doctype->name; - // hookup aliases - foreach ($doctype->aliases as $alias) { - if (isset($this->doctypes[$alias])) continue; - $this->aliases[$alias] = $name; - } - // remove old aliases - if (isset($this->aliases[$name])) unset($this->aliases[$name]); - return $doctype; - } - - /** - * Retrieves reference to a doctype of a certain name - * @note This function resolves aliases - * @note When possible, use the more fully-featured make() - * @param $doctype Name of doctype - * @return Editable doctype object - */ - public function get($doctype) { - if (isset($this->aliases[$doctype])) $doctype = $this->aliases[$doctype]; - if (!isset($this->doctypes[$doctype])) { - trigger_error('Doctype ' . htmlspecialchars($doctype) . ' does not exist', E_USER_ERROR); - $anon = new HTMLPurifier_Doctype($doctype); - return $anon; - } - return $this->doctypes[$doctype]; - } - - /** - * Creates a doctype based on a configuration object, - * will perform initialization on the doctype - * @note Use this function to get a copy of doctype that config - * can hold on to (this is necessary in order to tell - * Generator whether or not the current document is XML - * based or not). - */ - public function make($config) { - return clone $this->get($this->getDoctypeFromConfig($config)); - } - - /** - * Retrieves the doctype from the configuration object - */ - public function getDoctypeFromConfig($config) { - // recommended test - $doctype = $config->get('HTML.Doctype'); - if (!empty($doctype)) return $doctype; - $doctype = $config->get('HTML.CustomDoctype'); - if (!empty($doctype)) return $doctype; - // backwards-compatibility - if ($config->get('HTML.XHTML')) { - $doctype = 'XHTML 1.0'; - } else { - $doctype = 'HTML 4.01'; - } - if ($config->get('HTML.Strict')) { - $doctype .= ' Strict'; - } else { - $doctype .= ' Transitional'; - } - return $doctype; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ElementDef.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ElementDef.php deleted file mode 100644 index 5498d95..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ElementDef.php +++ /dev/null @@ -1,183 +0,0 @@ -setup(), this array may also - * contain an array at index 0 that indicates which attribute - * collections to load into the full array. It may also - * contain string indentifiers in lieu of HTMLPurifier_AttrDef, - * see HTMLPurifier_AttrTypes on how they are expanded during - * HTMLPurifier_HTMLDefinition->setup() processing. - */ - public $attr = array(); - - /** - * Indexed list of tag's HTMLPurifier_AttrTransform to be done before validation - */ - public $attr_transform_pre = array(); - - /** - * Indexed list of tag's HTMLPurifier_AttrTransform to be done after validation - */ - public $attr_transform_post = array(); - - /** - * HTMLPurifier_ChildDef of this tag. - */ - public $child; - - /** - * Abstract string representation of internal ChildDef rules. See - * HTMLPurifier_ContentSets for how this is parsed and then transformed - * into an HTMLPurifier_ChildDef. - * @warning This is a temporary variable that is not available after - * being processed by HTMLDefinition - */ - public $content_model; - - /** - * Value of $child->type, used to determine which ChildDef to use, - * used in combination with $content_model. - * @warning This must be lowercase - * @warning This is a temporary variable that is not available after - * being processed by HTMLDefinition - */ - public $content_model_type; - - - - /** - * Does the element have a content model (#PCDATA | Inline)*? This - * is important for chameleon ins and del processing in - * HTMLPurifier_ChildDef_Chameleon. Dynamically set: modules don't - * have to worry about this one. - */ - public $descendants_are_inline = false; - - /** - * List of the names of required attributes this element has. Dynamically - * populated by HTMLPurifier_HTMLDefinition::getElement - */ - public $required_attr = array(); - - /** - * Lookup table of tags excluded from all descendants of this tag. - * @note SGML permits exclusions for all descendants, but this is - * not possible with DTDs or XML Schemas. W3C has elected to - * use complicated compositions of content_models to simulate - * exclusion for children, but we go the simpler, SGML-style - * route of flat-out exclusions, which correctly apply to - * all descendants and not just children. Note that the XHTML - * Modularization Abstract Modules are blithely unaware of such - * distinctions. - */ - public $excludes = array(); - - /** - * This tag is explicitly auto-closed by the following tags. - */ - public $autoclose = array(); - - /** - * If a foreign element is found in this element, test if it is - * allowed by this sub-element; if it is, instead of closing the - * current element, place it inside this element. - */ - public $wrap; - - /** - * Whether or not this is a formatting element affected by the - * "Active Formatting Elements" algorithm. - */ - public $formatting; - - /** - * Low-level factory constructor for creating new standalone element defs - */ - public static function create($content_model, $content_model_type, $attr) { - $def = new HTMLPurifier_ElementDef(); - $def->content_model = $content_model; - $def->content_model_type = $content_model_type; - $def->attr = $attr; - return $def; - } - - /** - * Merges the values of another element definition into this one. - * Values from the new element def take precedence if a value is - * not mergeable. - */ - public function mergeIn($def) { - - // later keys takes precedence - foreach($def->attr as $k => $v) { - if ($k === 0) { - // merge in the includes - // sorry, no way to override an include - foreach ($v as $v2) { - $this->attr[0][] = $v2; - } - continue; - } - if ($v === false) { - if (isset($this->attr[$k])) unset($this->attr[$k]); - continue; - } - $this->attr[$k] = $v; - } - $this->_mergeAssocArray($this->attr_transform_pre, $def->attr_transform_pre); - $this->_mergeAssocArray($this->attr_transform_post, $def->attr_transform_post); - $this->_mergeAssocArray($this->excludes, $def->excludes); - - if(!empty($def->content_model)) { - $this->content_model = - str_replace("#SUPER", $this->content_model, $def->content_model); - $this->child = false; - } - if(!empty($def->content_model_type)) { - $this->content_model_type = $def->content_model_type; - $this->child = false; - } - if(!is_null($def->child)) $this->child = $def->child; - if(!is_null($def->formatting)) $this->formatting = $def->formatting; - if($def->descendants_are_inline) $this->descendants_are_inline = $def->descendants_are_inline; - - } - - /** - * Merges one array into another, removes values which equal false - * @param $a1 Array by reference that is merged into - * @param $a2 Array that merges into $a1 - */ - private function _mergeAssocArray(&$a1, $a2) { - foreach ($a2 as $k => $v) { - if ($v === false) { - if (isset($a1[$k])) unset($a1[$k]); - continue; - } - $a1[$k] = $v; - } - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Encoder.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Encoder.php deleted file mode 100644 index 2b3140c..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Encoder.php +++ /dev/null @@ -1,426 +0,0 @@ - under the - * LGPL license. Notes on what changed are inside, but in general, - * the original code transformed UTF-8 text into an array of integer - * Unicode codepoints. Understandably, transforming that back to - * a string would be somewhat expensive, so the function was modded to - * directly operate on the string. However, this discourages code - * reuse, and the logic enumerated here would be useful for any - * function that needs to be able to understand UTF-8 characters. - * As of right now, only smart lossless character encoding converters - * would need that, and I'm probably not going to implement them. - * Once again, PHP 6 should solve all our problems. - */ - public static function cleanUTF8($str, $force_php = false) { - - // UTF-8 validity is checked since PHP 4.3.5 - // This is an optimization: if the string is already valid UTF-8, no - // need to do PHP stuff. 99% of the time, this will be the case. - // The regexp matches the XML char production, as well as well as excluding - // non-SGML codepoints U+007F to U+009F - if (preg_match('/^[\x{9}\x{A}\x{D}\x{20}-\x{7E}\x{A0}-\x{D7FF}\x{E000}-\x{FFFD}\x{10000}-\x{10FFFF}]*$/Du', $str)) { - return $str; - } - - $mState = 0; // cached expected number of octets after the current octet - // until the beginning of the next UTF8 character sequence - $mUcs4 = 0; // cached Unicode character - $mBytes = 1; // cached expected number of octets in the current sequence - - // original code involved an $out that was an array of Unicode - // codepoints. Instead of having to convert back into UTF-8, we've - // decided to directly append valid UTF-8 characters onto a string - // $out once they're done. $char accumulates raw bytes, while $mUcs4 - // turns into the Unicode code point, so there's some redundancy. - - $out = ''; - $char = ''; - - $len = strlen($str); - for($i = 0; $i < $len; $i++) { - $in = ord($str{$i}); - $char .= $str[$i]; // append byte to char - if (0 == $mState) { - // When mState is zero we expect either a US-ASCII character - // or a multi-octet sequence. - if (0 == (0x80 & ($in))) { - // US-ASCII, pass straight through. - if (($in <= 31 || $in == 127) && - !($in == 9 || $in == 13 || $in == 10) // save \r\t\n - ) { - // control characters, remove - } else { - $out .= $char; - } - // reset - $char = ''; - $mBytes = 1; - } elseif (0xC0 == (0xE0 & ($in))) { - // First octet of 2 octet sequence - $mUcs4 = ($in); - $mUcs4 = ($mUcs4 & 0x1F) << 6; - $mState = 1; - $mBytes = 2; - } elseif (0xE0 == (0xF0 & ($in))) { - // First octet of 3 octet sequence - $mUcs4 = ($in); - $mUcs4 = ($mUcs4 & 0x0F) << 12; - $mState = 2; - $mBytes = 3; - } elseif (0xF0 == (0xF8 & ($in))) { - // First octet of 4 octet sequence - $mUcs4 = ($in); - $mUcs4 = ($mUcs4 & 0x07) << 18; - $mState = 3; - $mBytes = 4; - } elseif (0xF8 == (0xFC & ($in))) { - // First octet of 5 octet sequence. - // - // This is illegal because the encoded codepoint must be - // either: - // (a) not the shortest form or - // (b) outside the Unicode range of 0-0x10FFFF. - // Rather than trying to resynchronize, we will carry on - // until the end of the sequence and let the later error - // handling code catch it. - $mUcs4 = ($in); - $mUcs4 = ($mUcs4 & 0x03) << 24; - $mState = 4; - $mBytes = 5; - } elseif (0xFC == (0xFE & ($in))) { - // First octet of 6 octet sequence, see comments for 5 - // octet sequence. - $mUcs4 = ($in); - $mUcs4 = ($mUcs4 & 1) << 30; - $mState = 5; - $mBytes = 6; - } else { - // Current octet is neither in the US-ASCII range nor a - // legal first octet of a multi-octet sequence. - $mState = 0; - $mUcs4 = 0; - $mBytes = 1; - $char = ''; - } - } else { - // When mState is non-zero, we expect a continuation of the - // multi-octet sequence - if (0x80 == (0xC0 & ($in))) { - // Legal continuation. - $shift = ($mState - 1) * 6; - $tmp = $in; - $tmp = ($tmp & 0x0000003F) << $shift; - $mUcs4 |= $tmp; - - if (0 == --$mState) { - // End of the multi-octet sequence. mUcs4 now contains - // the final Unicode codepoint to be output - - // Check for illegal sequences and codepoints. - - // From Unicode 3.1, non-shortest form is illegal - if (((2 == $mBytes) && ($mUcs4 < 0x0080)) || - ((3 == $mBytes) && ($mUcs4 < 0x0800)) || - ((4 == $mBytes) && ($mUcs4 < 0x10000)) || - (4 < $mBytes) || - // From Unicode 3.2, surrogate characters = illegal - (($mUcs4 & 0xFFFFF800) == 0xD800) || - // Codepoints outside the Unicode range are illegal - ($mUcs4 > 0x10FFFF) - ) { - - } elseif (0xFEFF != $mUcs4 && // omit BOM - // check for valid Char unicode codepoints - ( - 0x9 == $mUcs4 || - 0xA == $mUcs4 || - 0xD == $mUcs4 || - (0x20 <= $mUcs4 && 0x7E >= $mUcs4) || - // 7F-9F is not strictly prohibited by XML, - // but it is non-SGML, and thus we don't allow it - (0xA0 <= $mUcs4 && 0xD7FF >= $mUcs4) || - (0x10000 <= $mUcs4 && 0x10FFFF >= $mUcs4) - ) - ) { - $out .= $char; - } - // initialize UTF8 cache (reset) - $mState = 0; - $mUcs4 = 0; - $mBytes = 1; - $char = ''; - } - } else { - // ((0xC0 & (*in) != 0x80) && (mState != 0)) - // Incomplete multi-octet sequence. - // used to result in complete fail, but we'll reset - $mState = 0; - $mUcs4 = 0; - $mBytes = 1; - $char =''; - } - } - } - return $out; - } - - /** - * Translates a Unicode codepoint into its corresponding UTF-8 character. - * @note Based on Feyd's function at - * , - * which is in public domain. - * @note While we're going to do code point parsing anyway, a good - * optimization would be to refuse to translate code points that - * are non-SGML characters. However, this could lead to duplication. - * @note This is very similar to the unichr function in - * maintenance/generate-entity-file.php (although this is superior, - * due to its sanity checks). - */ - - // +----------+----------+----------+----------+ - // | 33222222 | 22221111 | 111111 | | - // | 10987654 | 32109876 | 54321098 | 76543210 | bit - // +----------+----------+----------+----------+ - // | | | | 0xxxxxxx | 1 byte 0x00000000..0x0000007F - // | | | 110yyyyy | 10xxxxxx | 2 byte 0x00000080..0x000007FF - // | | 1110zzzz | 10yyyyyy | 10xxxxxx | 3 byte 0x00000800..0x0000FFFF - // | 11110www | 10wwzzzz | 10yyyyyy | 10xxxxxx | 4 byte 0x00010000..0x0010FFFF - // +----------+----------+----------+----------+ - // | 00000000 | 00011111 | 11111111 | 11111111 | Theoretical upper limit of legal scalars: 2097151 (0x001FFFFF) - // | 00000000 | 00010000 | 11111111 | 11111111 | Defined upper limit of legal scalar codes - // +----------+----------+----------+----------+ - - public static function unichr($code) { - if($code > 1114111 or $code < 0 or - ($code >= 55296 and $code <= 57343) ) { - // bits are set outside the "valid" range as defined - // by UNICODE 4.1.0 - return ''; - } - - $x = $y = $z = $w = 0; - if ($code < 128) { - // regular ASCII character - $x = $code; - } else { - // set up bits for UTF-8 - $x = ($code & 63) | 128; - if ($code < 2048) { - $y = (($code & 2047) >> 6) | 192; - } else { - $y = (($code & 4032) >> 6) | 128; - if($code < 65536) { - $z = (($code >> 12) & 15) | 224; - } else { - $z = (($code >> 12) & 63) | 128; - $w = (($code >> 18) & 7) | 240; - } - } - } - // set up the actual character - $ret = ''; - if($w) $ret .= chr($w); - if($z) $ret .= chr($z); - if($y) $ret .= chr($y); - $ret .= chr($x); - - return $ret; - } - - /** - * Converts a string to UTF-8 based on configuration. - */ - public static function convertToUTF8($str, $config, $context) { - $encoding = $config->get('Core.Encoding'); - if ($encoding === 'utf-8') return $str; - static $iconv = null; - if ($iconv === null) $iconv = function_exists('iconv'); - set_error_handler(array('HTMLPurifier_Encoder', 'muteErrorHandler')); - if ($iconv && !$config->get('Test.ForceNoIconv')) { - $str = iconv($encoding, 'utf-8//IGNORE', $str); - if ($str === false) { - // $encoding is not a valid encoding - restore_error_handler(); - trigger_error('Invalid encoding ' . $encoding, E_USER_ERROR); - return ''; - } - // If the string is bjorked by Shift_JIS or a similar encoding - // that doesn't support all of ASCII, convert the naughty - // characters to their true byte-wise ASCII/UTF-8 equivalents. - $str = strtr($str, HTMLPurifier_Encoder::testEncodingSupportsASCII($encoding)); - restore_error_handler(); - return $str; - } elseif ($encoding === 'iso-8859-1') { - $str = utf8_encode($str); - restore_error_handler(); - return $str; - } - trigger_error('Encoding not supported, please install iconv', E_USER_ERROR); - } - - /** - * Converts a string from UTF-8 based on configuration. - * @note Currently, this is a lossy conversion, with unexpressable - * characters being omitted. - */ - public static function convertFromUTF8($str, $config, $context) { - $encoding = $config->get('Core.Encoding'); - if ($encoding === 'utf-8') return $str; - static $iconv = null; - if ($iconv === null) $iconv = function_exists('iconv'); - if ($escape = $config->get('Core.EscapeNonASCIICharacters')) { - $str = HTMLPurifier_Encoder::convertToASCIIDumbLossless($str); - } - set_error_handler(array('HTMLPurifier_Encoder', 'muteErrorHandler')); - if ($iconv && !$config->get('Test.ForceNoIconv')) { - // Undo our previous fix in convertToUTF8, otherwise iconv will barf - $ascii_fix = HTMLPurifier_Encoder::testEncodingSupportsASCII($encoding); - if (!$escape && !empty($ascii_fix)) { - $clear_fix = array(); - foreach ($ascii_fix as $utf8 => $native) $clear_fix[$utf8] = ''; - $str = strtr($str, $clear_fix); - } - $str = strtr($str, array_flip($ascii_fix)); - // Normal stuff - $str = iconv('utf-8', $encoding . '//IGNORE', $str); - restore_error_handler(); - return $str; - } elseif ($encoding === 'iso-8859-1') { - $str = utf8_decode($str); - restore_error_handler(); - return $str; - } - trigger_error('Encoding not supported', E_USER_ERROR); - } - - /** - * Lossless (character-wise) conversion of HTML to ASCII - * @param $str UTF-8 string to be converted to ASCII - * @returns ASCII encoded string with non-ASCII character entity-ized - * @warning Adapted from MediaWiki, claiming fair use: this is a common - * algorithm. If you disagree with this license fudgery, - * implement it yourself. - * @note Uses decimal numeric entities since they are best supported. - * @note This is a DUMB function: it has no concept of keeping - * character entities that the projected character encoding - * can allow. We could possibly implement a smart version - * but that would require it to also know which Unicode - * codepoints the charset supported (not an easy task). - * @note Sort of with cleanUTF8() but it assumes that $str is - * well-formed UTF-8 - */ - public static function convertToASCIIDumbLossless($str) { - $bytesleft = 0; - $result = ''; - $working = 0; - $len = strlen($str); - for( $i = 0; $i < $len; $i++ ) { - $bytevalue = ord( $str[$i] ); - if( $bytevalue <= 0x7F ) { //0xxx xxxx - $result .= chr( $bytevalue ); - $bytesleft = 0; - } elseif( $bytevalue <= 0xBF ) { //10xx xxxx - $working = $working << 6; - $working += ($bytevalue & 0x3F); - $bytesleft--; - if( $bytesleft <= 0 ) { - $result .= "&#" . $working . ";"; - } - } elseif( $bytevalue <= 0xDF ) { //110x xxxx - $working = $bytevalue & 0x1F; - $bytesleft = 1; - } elseif( $bytevalue <= 0xEF ) { //1110 xxxx - $working = $bytevalue & 0x0F; - $bytesleft = 2; - } else { //1111 0xxx - $working = $bytevalue & 0x07; - $bytesleft = 3; - } - } - return $result; - } - - /** - * This expensive function tests whether or not a given character - * encoding supports ASCII. 7/8-bit encodings like Shift_JIS will - * fail this test, and require special processing. Variable width - * encodings shouldn't ever fail. - * - * @param string $encoding Encoding name to test, as per iconv format - * @param bool $bypass Whether or not to bypass the precompiled arrays. - * @return Array of UTF-8 characters to their corresponding ASCII, - * which can be used to "undo" any overzealous iconv action. - */ - public static function testEncodingSupportsASCII($encoding, $bypass = false) { - static $encodings = array(); - if (!$bypass) { - if (isset($encodings[$encoding])) return $encodings[$encoding]; - $lenc = strtolower($encoding); - switch ($lenc) { - case 'shift_jis': - return array("\xC2\xA5" => '\\', "\xE2\x80\xBE" => '~'); - case 'johab': - return array("\xE2\x82\xA9" => '\\'); - } - if (strpos($lenc, 'iso-8859-') === 0) return array(); - } - $ret = array(); - set_error_handler(array('HTMLPurifier_Encoder', 'muteErrorHandler')); - if (iconv('UTF-8', $encoding, 'a') === false) return false; - for ($i = 0x20; $i <= 0x7E; $i++) { // all printable ASCII chars - $c = chr($i); // UTF-8 char - $r = iconv('UTF-8', "$encoding//IGNORE", $c); // initial conversion - if ( - $r === '' || - // This line is needed for iconv implementations that do not - // omit characters that do not exist in the target character set - ($r === $c && iconv($encoding, 'UTF-8//IGNORE', $r) !== $c) - ) { - // Reverse engineer: what's the UTF-8 equiv of this byte - // sequence? This assumes that there's no variable width - // encoding that doesn't support ASCII. - $ret[iconv($encoding, 'UTF-8//IGNORE', $c)] = $c; - } - } - restore_error_handler(); - $encodings[$encoding] = $ret; - return $ret; - } - - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/EntityLookup.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/EntityLookup.php deleted file mode 100644 index b4dfce9..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/EntityLookup.php +++ /dev/null @@ -1,44 +0,0 @@ -table = unserialize(file_get_contents($file)); - } - - /** - * Retrieves sole instance of the object. - * @param Optional prototype of custom lookup table to overload with. - */ - public static function instance($prototype = false) { - // no references, since PHP doesn't copy unless modified - static $instance = null; - if ($prototype) { - $instance = $prototype; - } elseif (!$instance) { - $instance = new HTMLPurifier_EntityLookup(); - $instance->setup(); - } - return $instance; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/EntityLookup/entities.ser b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/EntityLookup/entities.ser deleted file mode 100644 index e8b0812..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/EntityLookup/entities.ser +++ /dev/null @@ -1 +0,0 @@ -a:253:{s:4:"fnof";s:2:"ƒ";s:5:"Alpha";s:2:"Α";s:4:"Beta";s:2:"Β";s:5:"Gamma";s:2:"Γ";s:5:"Delta";s:2:"Δ";s:7:"Epsilon";s:2:"Ε";s:4:"Zeta";s:2:"Ζ";s:3:"Eta";s:2:"Η";s:5:"Theta";s:2:"Θ";s:4:"Iota";s:2:"Ι";s:5:"Kappa";s:2:"Κ";s:6:"Lambda";s:2:"Λ";s:2:"Mu";s:2:"Μ";s:2:"Nu";s:2:"Ν";s:2:"Xi";s:2:"Ξ";s:7:"Omicron";s:2:"Ο";s:2:"Pi";s:2:"Π";s:3:"Rho";s:2:"Ρ";s:5:"Sigma";s:2:"Σ";s:3:"Tau";s:2:"Τ";s:7:"Upsilon";s:2:"Υ";s:3:"Phi";s:2:"Φ";s:3:"Chi";s:2:"Χ";s:3:"Psi";s:2:"Ψ";s:5:"Omega";s:2:"Ω";s:5:"alpha";s:2:"α";s:4:"beta";s:2:"β";s:5:"gamma";s:2:"γ";s:5:"delta";s:2:"δ";s:7:"epsilon";s:2:"ε";s:4:"zeta";s:2:"ζ";s:3:"eta";s:2:"η";s:5:"theta";s:2:"θ";s:4:"iota";s:2:"ι";s:5:"kappa";s:2:"κ";s:6:"lambda";s:2:"λ";s:2:"mu";s:2:"μ";s:2:"nu";s:2:"ν";s:2:"xi";s:2:"ξ";s:7:"omicron";s:2:"ο";s:2:"pi";s:2:"π";s:3:"rho";s:2:"ρ";s:6:"sigmaf";s:2:"ς";s:5:"sigma";s:2:"σ";s:3:"tau";s:2:"τ";s:7:"upsilon";s:2:"υ";s:3:"phi";s:2:"φ";s:3:"chi";s:2:"χ";s:3:"psi";s:2:"ψ";s:5:"omega";s:2:"ω";s:8:"thetasym";s:2:"ϑ";s:5:"upsih";s:2:"ϒ";s:3:"piv";s:2:"ϖ";s:4:"bull";s:3:"•";s:6:"hellip";s:3:"…";s:5:"prime";s:3:"′";s:5:"Prime";s:3:"″";s:5:"oline";s:3:"‾";s:5:"frasl";s:3:"⁄";s:6:"weierp";s:3:"℘";s:5:"image";s:3:"ℑ";s:4:"real";s:3:"ℜ";s:5:"trade";s:3:"™";s:7:"alefsym";s:3:"ℵ";s:4:"larr";s:3:"←";s:4:"uarr";s:3:"↑";s:4:"rarr";s:3:"→";s:4:"darr";s:3:"↓";s:4:"harr";s:3:"↔";s:5:"crarr";s:3:"↵";s:4:"lArr";s:3:"⇐";s:4:"uArr";s:3:"⇑";s:4:"rArr";s:3:"⇒";s:4:"dArr";s:3:"⇓";s:4:"hArr";s:3:"⇔";s:6:"forall";s:3:"∀";s:4:"part";s:3:"∂";s:5:"exist";s:3:"∃";s:5:"empty";s:3:"∅";s:5:"nabla";s:3:"∇";s:4:"isin";s:3:"∈";s:5:"notin";s:3:"∉";s:2:"ni";s:3:"∋";s:4:"prod";s:3:"∏";s:3:"sum";s:3:"∑";s:5:"minus";s:3:"−";s:6:"lowast";s:3:"∗";s:5:"radic";s:3:"√";s:4:"prop";s:3:"∝";s:5:"infin";s:3:"∞";s:3:"ang";s:3:"∠";s:3:"and";s:3:"∧";s:2:"or";s:3:"∨";s:3:"cap";s:3:"∩";s:3:"cup";s:3:"∪";s:3:"int";s:3:"∫";s:6:"there4";s:3:"∴";s:3:"sim";s:3:"∼";s:4:"cong";s:3:"≅";s:5:"asymp";s:3:"≈";s:2:"ne";s:3:"≠";s:5:"equiv";s:3:"≡";s:2:"le";s:3:"≤";s:2:"ge";s:3:"≥";s:3:"sub";s:3:"⊂";s:3:"sup";s:3:"⊃";s:4:"nsub";s:3:"⊄";s:4:"sube";s:3:"⊆";s:4:"supe";s:3:"⊇";s:5:"oplus";s:3:"⊕";s:6:"otimes";s:3:"⊗";s:4:"perp";s:3:"⊥";s:4:"sdot";s:3:"⋅";s:5:"lceil";s:3:"⌈";s:5:"rceil";s:3:"⌉";s:6:"lfloor";s:3:"⌊";s:6:"rfloor";s:3:"⌋";s:4:"lang";s:3:"〈";s:4:"rang";s:3:"〉";s:3:"loz";s:3:"◊";s:6:"spades";s:3:"♠";s:5:"clubs";s:3:"♣";s:6:"hearts";s:3:"♥";s:5:"diams";s:3:"♦";s:4:"quot";s:1:""";s:3:"amp";s:1:"&";s:2:"lt";s:1:"<";s:2:"gt";s:1:">";s:4:"apos";s:1:"'";s:5:"OElig";s:2:"Œ";s:5:"oelig";s:2:"œ";s:6:"Scaron";s:2:"Š";s:6:"scaron";s:2:"š";s:4:"Yuml";s:2:"Ÿ";s:4:"circ";s:2:"ˆ";s:5:"tilde";s:2:"˜";s:4:"ensp";s:3:" ";s:4:"emsp";s:3:" ";s:6:"thinsp";s:3:" ";s:4:"zwnj";s:3:"‌";s:3:"zwj";s:3:"‍";s:3:"lrm";s:3:"‎";s:3:"rlm";s:3:"‏";s:5:"ndash";s:3:"–";s:5:"mdash";s:3:"—";s:5:"lsquo";s:3:"‘";s:5:"rsquo";s:3:"’";s:5:"sbquo";s:3:"‚";s:5:"ldquo";s:3:"“";s:5:"rdquo";s:3:"”";s:5:"bdquo";s:3:"„";s:6:"dagger";s:3:"†";s:6:"Dagger";s:3:"‡";s:6:"permil";s:3:"‰";s:6:"lsaquo";s:3:"‹";s:6:"rsaquo";s:3:"›";s:4:"euro";s:3:"€";s:4:"nbsp";s:2:" ";s:5:"iexcl";s:2:"¡";s:4:"cent";s:2:"¢";s:5:"pound";s:2:"£";s:6:"curren";s:2:"¤";s:3:"yen";s:2:"¥";s:6:"brvbar";s:2:"¦";s:4:"sect";s:2:"§";s:3:"uml";s:2:"¨";s:4:"copy";s:2:"©";s:4:"ordf";s:2:"ª";s:5:"laquo";s:2:"«";s:3:"not";s:2:"¬";s:3:"shy";s:2:"­";s:3:"reg";s:2:"®";s:4:"macr";s:2:"¯";s:3:"deg";s:2:"°";s:6:"plusmn";s:2:"±";s:4:"sup2";s:2:"²";s:4:"sup3";s:2:"³";s:5:"acute";s:2:"´";s:5:"micro";s:2:"µ";s:4:"para";s:2:"¶";s:6:"middot";s:2:"·";s:5:"cedil";s:2:"¸";s:4:"sup1";s:2:"¹";s:4:"ordm";s:2:"º";s:5:"raquo";s:2:"»";s:6:"frac14";s:2:"¼";s:6:"frac12";s:2:"½";s:6:"frac34";s:2:"¾";s:6:"iquest";s:2:"¿";s:6:"Agrave";s:2:"À";s:6:"Aacute";s:2:"Á";s:5:"Acirc";s:2:"Â";s:6:"Atilde";s:2:"Ã";s:4:"Auml";s:2:"Ä";s:5:"Aring";s:2:"Å";s:5:"AElig";s:2:"Æ";s:6:"Ccedil";s:2:"Ç";s:6:"Egrave";s:2:"È";s:6:"Eacute";s:2:"É";s:5:"Ecirc";s:2:"Ê";s:4:"Euml";s:2:"Ë";s:6:"Igrave";s:2:"Ì";s:6:"Iacute";s:2:"Í";s:5:"Icirc";s:2:"Î";s:4:"Iuml";s:2:"Ï";s:3:"ETH";s:2:"Ð";s:6:"Ntilde";s:2:"Ñ";s:6:"Ograve";s:2:"Ò";s:6:"Oacute";s:2:"Ó";s:5:"Ocirc";s:2:"Ô";s:6:"Otilde";s:2:"Õ";s:4:"Ouml";s:2:"Ö";s:5:"times";s:2:"×";s:6:"Oslash";s:2:"Ø";s:6:"Ugrave";s:2:"Ù";s:6:"Uacute";s:2:"Ú";s:5:"Ucirc";s:2:"Û";s:4:"Uuml";s:2:"Ü";s:6:"Yacute";s:2:"Ý";s:5:"THORN";s:2:"Þ";s:5:"szlig";s:2:"ß";s:6:"agrave";s:2:"à";s:6:"aacute";s:2:"á";s:5:"acirc";s:2:"â";s:6:"atilde";s:2:"ã";s:4:"auml";s:2:"ä";s:5:"aring";s:2:"å";s:5:"aelig";s:2:"æ";s:6:"ccedil";s:2:"ç";s:6:"egrave";s:2:"è";s:6:"eacute";s:2:"é";s:5:"ecirc";s:2:"ê";s:4:"euml";s:2:"ë";s:6:"igrave";s:2:"ì";s:6:"iacute";s:2:"í";s:5:"icirc";s:2:"î";s:4:"iuml";s:2:"ï";s:3:"eth";s:2:"ð";s:6:"ntilde";s:2:"ñ";s:6:"ograve";s:2:"ò";s:6:"oacute";s:2:"ó";s:5:"ocirc";s:2:"ô";s:6:"otilde";s:2:"õ";s:4:"ouml";s:2:"ö";s:6:"divide";s:2:"÷";s:6:"oslash";s:2:"ø";s:6:"ugrave";s:2:"ù";s:6:"uacute";s:2:"ú";s:5:"ucirc";s:2:"û";s:4:"uuml";s:2:"ü";s:6:"yacute";s:2:"ý";s:5:"thorn";s:2:"þ";s:4:"yuml";s:2:"ÿ";} \ No newline at end of file diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/EntityParser.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/EntityParser.php deleted file mode 100644 index 8c38447..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/EntityParser.php +++ /dev/null @@ -1,144 +0,0 @@ - '"', - 38 => '&', - 39 => "'", - 60 => '<', - 62 => '>' - ); - - /** - * Stripped entity names to decimal conversion table for special entities. - */ - protected $_special_ent2dec = - array( - 'quot' => 34, - 'amp' => 38, - 'lt' => 60, - 'gt' => 62 - ); - - /** - * Substitutes non-special entities with their parsed equivalents. Since - * running this whenever you have parsed character is t3h 5uck, we run - * it before everything else. - * - * @param $string String to have non-special entities parsed. - * @returns Parsed string. - */ - public function substituteNonSpecialEntities($string) { - // it will try to detect missing semicolons, but don't rely on it - return preg_replace_callback( - $this->_substituteEntitiesRegex, - array($this, 'nonSpecialEntityCallback'), - $string - ); - } - - /** - * Callback function for substituteNonSpecialEntities() that does the work. - * - * @param $matches PCRE matches array, with 0 the entire match, and - * either index 1, 2 or 3 set with a hex value, dec value, - * or string (respectively). - * @returns Replacement string. - */ - - protected function nonSpecialEntityCallback($matches) { - // replaces all but big five - $entity = $matches[0]; - $is_num = (@$matches[0][1] === '#'); - if ($is_num) { - $is_hex = (@$entity[2] === 'x'); - $code = $is_hex ? hexdec($matches[1]) : (int) $matches[2]; - - // abort for special characters - if (isset($this->_special_dec2str[$code])) return $entity; - - return HTMLPurifier_Encoder::unichr($code); - } else { - if (isset($this->_special_ent2dec[$matches[3]])) return $entity; - if (!$this->_entity_lookup) { - $this->_entity_lookup = HTMLPurifier_EntityLookup::instance(); - } - if (isset($this->_entity_lookup->table[$matches[3]])) { - return $this->_entity_lookup->table[$matches[3]]; - } else { - return $entity; - } - } - } - - /** - * Substitutes only special entities with their parsed equivalents. - * - * @notice We try to avoid calling this function because otherwise, it - * would have to be called a lot (for every parsed section). - * - * @param $string String to have non-special entities parsed. - * @returns Parsed string. - */ - public function substituteSpecialEntities($string) { - return preg_replace_callback( - $this->_substituteEntitiesRegex, - array($this, 'specialEntityCallback'), - $string); - } - - /** - * Callback function for substituteSpecialEntities() that does the work. - * - * This callback has same syntax as nonSpecialEntityCallback(). - * - * @param $matches PCRE-style matches array, with 0 the entire match, and - * either index 1, 2 or 3 set with a hex value, dec value, - * or string (respectively). - * @returns Replacement string. - */ - protected function specialEntityCallback($matches) { - $entity = $matches[0]; - $is_num = (@$matches[0][1] === '#'); - if ($is_num) { - $is_hex = (@$entity[2] === 'x'); - $int = $is_hex ? hexdec($matches[1]) : (int) $matches[2]; - return isset($this->_special_dec2str[$int]) ? - $this->_special_dec2str[$int] : - $entity; - } else { - return isset($this->_special_ent2dec[$matches[3]]) ? - $this->_special_ent2dec[$matches[3]] : - $entity; - } - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ErrorCollector.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ErrorCollector.php deleted file mode 100644 index 6713eaf..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ErrorCollector.php +++ /dev/null @@ -1,209 +0,0 @@ -locale =& $context->get('Locale'); - $this->context = $context; - $this->_current =& $this->_stacks[0]; - $this->errors =& $this->_stacks[0]; - } - - /** - * Sends an error message to the collector for later use - * @param $severity int Error severity, PHP error style (don't use E_USER_) - * @param $msg string Error message text - * @param $subst1 string First substitution for $msg - * @param $subst2 string ... - */ - public function send($severity, $msg) { - - $args = array(); - if (func_num_args() > 2) { - $args = func_get_args(); - array_shift($args); - unset($args[0]); - } - - $token = $this->context->get('CurrentToken', true); - $line = $token ? $token->line : $this->context->get('CurrentLine', true); - $col = $token ? $token->col : $this->context->get('CurrentCol', true); - $attr = $this->context->get('CurrentAttr', true); - - // perform special substitutions, also add custom parameters - $subst = array(); - if (!is_null($token)) { - $args['CurrentToken'] = $token; - } - if (!is_null($attr)) { - $subst['$CurrentAttr.Name'] = $attr; - if (isset($token->attr[$attr])) $subst['$CurrentAttr.Value'] = $token->attr[$attr]; - } - - if (empty($args)) { - $msg = $this->locale->getMessage($msg); - } else { - $msg = $this->locale->formatMessage($msg, $args); - } - - if (!empty($subst)) $msg = strtr($msg, $subst); - - // (numerically indexed) - $error = array( - self::LINENO => $line, - self::SEVERITY => $severity, - self::MESSAGE => $msg, - self::CHILDREN => array() - ); - $this->_current[] = $error; - - - // NEW CODE BELOW ... - - $struct = null; - // Top-level errors are either: - // TOKEN type, if $value is set appropriately, or - // "syntax" type, if $value is null - $new_struct = new HTMLPurifier_ErrorStruct(); - $new_struct->type = HTMLPurifier_ErrorStruct::TOKEN; - if ($token) $new_struct->value = clone $token; - if (is_int($line) && is_int($col)) { - if (isset($this->lines[$line][$col])) { - $struct = $this->lines[$line][$col]; - } else { - $struct = $this->lines[$line][$col] = $new_struct; - } - // These ksorts may present a performance problem - ksort($this->lines[$line], SORT_NUMERIC); - } else { - if (isset($this->lines[-1])) { - $struct = $this->lines[-1]; - } else { - $struct = $this->lines[-1] = $new_struct; - } - } - ksort($this->lines, SORT_NUMERIC); - - // Now, check if we need to operate on a lower structure - if (!empty($attr)) { - $struct = $struct->getChild(HTMLPurifier_ErrorStruct::ATTR, $attr); - if (!$struct->value) { - $struct->value = array($attr, 'PUT VALUE HERE'); - } - } - if (!empty($cssprop)) { - $struct = $struct->getChild(HTMLPurifier_ErrorStruct::CSSPROP, $cssprop); - if (!$struct->value) { - // if we tokenize CSS this might be a little more difficult to do - $struct->value = array($cssprop, 'PUT VALUE HERE'); - } - } - - // Ok, structs are all setup, now time to register the error - $struct->addError($severity, $msg); - } - - /** - * Retrieves raw error data for custom formatter to use - * @param List of arrays in format of array(line of error, - * error severity, error message, - * recursive sub-errors array) - */ - public function getRaw() { - return $this->errors; - } - - /** - * Default HTML formatting implementation for error messages - * @param $config Configuration array, vital for HTML output nature - * @param $errors Errors array to display; used for recursion. - */ - public function getHTMLFormatted($config, $errors = null) { - $ret = array(); - - $this->generator = new HTMLPurifier_Generator($config, $this->context); - if ($errors === null) $errors = $this->errors; - - // 'At line' message needs to be removed - - // generation code for new structure goes here. It needs to be recursive. - foreach ($this->lines as $line => $col_array) { - if ($line == -1) continue; - foreach ($col_array as $col => $struct) { - $this->_renderStruct($ret, $struct, $line, $col); - } - } - if (isset($this->lines[-1])) { - $this->_renderStruct($ret, $this->lines[-1]); - } - - if (empty($errors)) { - return '

' . $this->locale->getMessage('ErrorCollector: No errors') . '

'; - } else { - return '
  • ' . implode('
  • ', $ret) . '
'; - } - - } - - private function _renderStruct(&$ret, $struct, $line = null, $col = null) { - $stack = array($struct); - $context_stack = array(array()); - while ($current = array_pop($stack)) { - $context = array_pop($context_stack); - foreach ($current->errors as $error) { - list($severity, $msg) = $error; - $string = ''; - $string .= '
'; - // W3C uses an icon to indicate the severity of the error. - $error = $this->locale->getErrorName($severity); - $string .= "$error "; - if (!is_null($line) && !is_null($col)) { - $string .= "Line $line, Column $col: "; - } else { - $string .= 'End of Document: '; - } - $string .= '' . $this->generator->escape($msg) . ' '; - $string .= '
'; - // Here, have a marker for the character on the column appropriate. - // Be sure to clip extremely long lines. - //$string .= '
';
-                //$string .= '';
-                //$string .= '
'; - $ret[] = $string; - } - foreach ($current->children as $type => $array) { - $context[] = $current; - $stack = array_merge($stack, array_reverse($array, true)); - for ($i = count($array); $i > 0; $i--) { - $context_stack[] = $context; - } - } - } - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ErrorStruct.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ErrorStruct.php deleted file mode 100644 index 9bc8996..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/ErrorStruct.php +++ /dev/null @@ -1,60 +0,0 @@ -children[$type][$id])) { - $this->children[$type][$id] = new HTMLPurifier_ErrorStruct(); - $this->children[$type][$id]->type = $type; - } - return $this->children[$type][$id]; - } - - public function addError($severity, $message) { - $this->errors[] = array($severity, $message); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Exception.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Exception.php deleted file mode 100644 index be85b4c..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Exception.php +++ /dev/null @@ -1,12 +0,0 @@ -preFilter, - * 2->preFilter, 3->preFilter, purify, 3->postFilter, 2->postFilter, - * 1->postFilter. - * - * @note Methods are not declared abstract as it is perfectly legitimate - * for an implementation not to want anything to happen on a step - */ - -class HTMLPurifier_Filter -{ - - /** - * Name of the filter for identification purposes - */ - public $name; - - /** - * Pre-processor function, handles HTML before HTML Purifier - */ - public function preFilter($html, $config, $context) { - return $html; - } - - /** - * Post-processor function, handles HTML after HTML Purifier - */ - public function postFilter($html, $config, $context) { - return $html; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Filter/ExtractStyleBlocks.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Filter/ExtractStyleBlocks.php deleted file mode 100644 index bbf78a6..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Filter/ExtractStyleBlocks.php +++ /dev/null @@ -1,135 +0,0 @@ - blocks from input HTML, cleans them up - * using CSSTidy, and then places them in $purifier->context->get('StyleBlocks') - * so they can be used elsewhere in the document. - * - * @note - * See tests/HTMLPurifier/Filter/ExtractStyleBlocksTest.php for - * sample usage. - * - * @note - * This filter can also be used on stylesheets not included in the - * document--something purists would probably prefer. Just directly - * call HTMLPurifier_Filter_ExtractStyleBlocks->cleanCSS() - */ -class HTMLPurifier_Filter_ExtractStyleBlocks extends HTMLPurifier_Filter -{ - - public $name = 'ExtractStyleBlocks'; - private $_styleMatches = array(); - private $_tidy; - - public function __construct() { - $this->_tidy = new csstidy(); - } - - /** - * Save the contents of CSS blocks to style matches - * @param $matches preg_replace style $matches array - */ - protected function styleCallback($matches) { - $this->_styleMatches[] = $matches[1]; - } - - /** - * Removes inline #isU', array($this, 'styleCallback'), $html); - $style_blocks = $this->_styleMatches; - $this->_styleMatches = array(); // reset - $context->register('StyleBlocks', $style_blocks); // $context must not be reused - if ($this->_tidy) { - foreach ($style_blocks as &$style) { - $style = $this->cleanCSS($style, $config, $context); - } - } - return $html; - } - - /** - * Takes CSS (the stuff found in in a font-family prop). - if ($config->get('Filter.ExtractStyleBlocks.Escaping')) { - $css = str_replace( - array('<', '>', '&'), - array('\3C ', '\3E ', '\26 '), - $css - ); - } - return $css; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Filter/YouTube.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Filter/YouTube.php deleted file mode 100644 index 23df221..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Filter/YouTube.php +++ /dev/null @@ -1,39 +0,0 @@ -]+>.+?'. - 'http://www.youtube.com/((?:v|cp)/[A-Za-z0-9\-_=]+).+?#s'; - $pre_replace = '\1'; - return preg_replace($pre_regex, $pre_replace, $html); - } - - public function postFilter($html, $config, $context) { - $post_regex = '#((?:v|cp)/[A-Za-z0-9\-_=]+)#'; - return preg_replace_callback($post_regex, array($this, 'postFilterCallback'), $html); - } - - protected function armorUrl($url) { - return str_replace('--', '--', $url); - } - - protected function postFilterCallback($matches) { - $url = $this->armorUrl($matches[1]); - return ''. - ''. - ''. - ''; - - } -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Generator.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Generator.php deleted file mode 100644 index fee1a5f..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Generator.php +++ /dev/null @@ -1,254 +0,0 @@ - tags - */ - private $_scriptFix = false; - - /** - * Cache of HTMLDefinition during HTML output to determine whether or - * not attributes should be minimized. - */ - private $_def; - - /** - * Cache of %Output.SortAttr - */ - private $_sortAttr; - - /** - * Cache of %Output.FlashCompat - */ - private $_flashCompat; - - /** - * Cache of %Output.FixInnerHTML - */ - private $_innerHTMLFix; - - /** - * Stack for keeping track of object information when outputting IE - * compatibility code. - */ - private $_flashStack = array(); - - /** - * Configuration for the generator - */ - protected $config; - - /** - * @param $config Instance of HTMLPurifier_Config - * @param $context Instance of HTMLPurifier_Context - */ - public function __construct($config, $context) { - $this->config = $config; - $this->_scriptFix = $config->get('Output.CommentScriptContents'); - $this->_innerHTMLFix = $config->get('Output.FixInnerHTML'); - $this->_sortAttr = $config->get('Output.SortAttr'); - $this->_flashCompat = $config->get('Output.FlashCompat'); - $this->_def = $config->getHTMLDefinition(); - $this->_xhtml = $this->_def->doctype->xml; - } - - /** - * Generates HTML from an array of tokens. - * @param $tokens Array of HTMLPurifier_Token - * @param $config HTMLPurifier_Config object - * @return Generated HTML - */ - public function generateFromTokens($tokens) { - if (!$tokens) return ''; - - // Basic algorithm - $html = ''; - for ($i = 0, $size = count($tokens); $i < $size; $i++) { - if ($this->_scriptFix && $tokens[$i]->name === 'script' - && $i + 2 < $size && $tokens[$i+2] instanceof HTMLPurifier_Token_End) { - // script special case - // the contents of the script block must be ONE token - // for this to work. - $html .= $this->generateFromToken($tokens[$i++]); - $html .= $this->generateScriptFromToken($tokens[$i++]); - } - $html .= $this->generateFromToken($tokens[$i]); - } - - // Tidy cleanup - if (extension_loaded('tidy') && $this->config->get('Output.TidyFormat')) { - $tidy = new Tidy; - $tidy->parseString($html, array( - 'indent'=> true, - 'output-xhtml' => $this->_xhtml, - 'show-body-only' => true, - 'indent-spaces' => 2, - 'wrap' => 68, - ), 'utf8'); - $tidy->cleanRepair(); - $html = (string) $tidy; // explicit cast necessary - } - - // Normalize newlines to system defined value - if ($this->config->get('Core.NormalizeNewlines')) { - $nl = $this->config->get('Output.Newline'); - if ($nl === null) $nl = PHP_EOL; - if ($nl !== "\n") $html = str_replace("\n", $nl, $html); - } - return $html; - } - - /** - * Generates HTML from a single token. - * @param $token HTMLPurifier_Token object. - * @return Generated HTML - */ - public function generateFromToken($token) { - if (!$token instanceof HTMLPurifier_Token) { - trigger_error('Cannot generate HTML from non-HTMLPurifier_Token object', E_USER_WARNING); - return ''; - - } elseif ($token instanceof HTMLPurifier_Token_Start) { - $attr = $this->generateAttributes($token->attr, $token->name); - if ($this->_flashCompat) { - if ($token->name == "object") { - $flash = new stdclass(); - $flash->attr = $token->attr; - $flash->param = array(); - $this->_flashStack[] = $flash; - } - } - return '<' . $token->name . ($attr ? ' ' : '') . $attr . '>'; - - } elseif ($token instanceof HTMLPurifier_Token_End) { - $_extra = ''; - if ($this->_flashCompat) { - if ($token->name == "object" && !empty($this->_flashStack)) { - // doesn't do anything for now - } - } - return $_extra . 'name . '>'; - - } elseif ($token instanceof HTMLPurifier_Token_Empty) { - if ($this->_flashCompat && $token->name == "param" && !empty($this->_flashStack)) { - $this->_flashStack[count($this->_flashStack)-1]->param[$token->attr['name']] = $token->attr['value']; - } - $attr = $this->generateAttributes($token->attr, $token->name); - return '<' . $token->name . ($attr ? ' ' : '') . $attr . - ( $this->_xhtml ? ' /': '' ) //
v.
- . '>'; - - } elseif ($token instanceof HTMLPurifier_Token_Text) { - return $this->escape($token->data, ENT_NOQUOTES); - - } elseif ($token instanceof HTMLPurifier_Token_Comment) { - return ''; - } else { - return ''; - - } - } - - /** - * Special case processor for the contents of script tags - * @warning This runs into problems if there's already a literal - * --> somewhere inside the script contents. - */ - public function generateScriptFromToken($token) { - if (!$token instanceof HTMLPurifier_Token_Text) return $this->generateFromToken($token); - // Thanks - $data = preg_replace('#//\s*$#', '', $token->data); - return ''; - } - - /** - * Generates attribute declarations from attribute array. - * @note This does not include the leading or trailing space. - * @param $assoc_array_of_attributes Attribute array - * @param $element Name of element attributes are for, used to check - * attribute minimization. - * @return Generate HTML fragment for insertion. - */ - public function generateAttributes($assoc_array_of_attributes, $element = false) { - $html = ''; - if ($this->_sortAttr) ksort($assoc_array_of_attributes); - foreach ($assoc_array_of_attributes as $key => $value) { - if (!$this->_xhtml) { - // Remove namespaced attributes - if (strpos($key, ':') !== false) continue; - // Check if we should minimize the attribute: val="val" -> val - if ($element && !empty($this->_def->info[$element]->attr[$key]->minimized)) { - $html .= $key . ' '; - continue; - } - } - // Workaround for Internet Explorer innerHTML bug. - // Essentially, Internet Explorer, when calculating - // innerHTML, omits quotes if there are no instances of - // angled brackets, quotes or spaces. However, when parsing - // HTML (for example, when you assign to innerHTML), it - // treats backticks as quotes. Thus, - // `` - // becomes - // `` - // becomes - // - // Fortunately, all we need to do is trigger an appropriate - // quoting style, which we do by adding an extra space. - // This also is consistent with the W3C spec, which states - // that user agents may ignore leading or trailing - // whitespace (in fact, most don't, at least for attributes - // like alt, but an extra space at the end is barely - // noticeable). Still, we have a configuration knob for - // this, since this transformation is not necesary if you - // don't process user input with innerHTML or you don't plan - // on supporting Internet Explorer. - if ($this->_innerHTMLFix) { - if (strpos($value, '`') !== false) { - // check if correct quoting style would not already be - // triggered - if (strcspn($value, '"\' <>') === strlen($value)) { - // protect! - $value .= ' '; - } - } - } - $html .= $key.'="'.$this->escape($value).'" '; - } - return rtrim($html); - } - - /** - * Escapes raw text data. - * @todo This really ought to be protected, but until we have a facility - * for properly generating HTML here w/o using tokens, it stays - * public. - * @param $string String data to escape for HTML. - * @param $quote Quoting style, like htmlspecialchars. ENT_NOQUOTES is - * permissible for non-attribute output. - * @return String escaped data. - */ - public function escape($string, $quote = null) { - // Workaround for APC bug on Mac Leopard reported by sidepodcast - // http://htmlpurifier.org/phorum/read.php?3,4823,4846 - if ($quote === null) $quote = ENT_COMPAT; - return htmlspecialchars($string, $quote, 'UTF-8'); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLDefinition.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLDefinition.php deleted file mode 100644 index 33bb38a..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLDefinition.php +++ /dev/null @@ -1,425 +0,0 @@ -getAnonymousModule(); - if (!isset($module->info[$element_name])) { - $element = $module->addBlankElement($element_name); - } else { - $element = $module->info[$element_name]; - } - $element->attr[$attr_name] = $def; - } - - /** - * Adds a custom element to your HTML definition - * @note See HTMLPurifier_HTMLModule::addElement for detailed - * parameter and return value descriptions. - */ - public function addElement($element_name, $type, $contents, $attr_collections, $attributes = array()) { - $module = $this->getAnonymousModule(); - // assume that if the user is calling this, the element - // is safe. This may not be a good idea - $element = $module->addElement($element_name, $type, $contents, $attr_collections, $attributes); - return $element; - } - - /** - * Adds a blank element to your HTML definition, for overriding - * existing behavior - * @note See HTMLPurifier_HTMLModule::addBlankElement for detailed - * parameter and return value descriptions. - */ - public function addBlankElement($element_name) { - $module = $this->getAnonymousModule(); - $element = $module->addBlankElement($element_name); - return $element; - } - - /** - * Retrieves a reference to the anonymous module, so you can - * bust out advanced features without having to make your own - * module. - */ - public function getAnonymousModule() { - if (!$this->_anonModule) { - $this->_anonModule = new HTMLPurifier_HTMLModule(); - $this->_anonModule->name = 'Anonymous'; - } - return $this->_anonModule; - } - - private $_anonModule; - - - // PUBLIC BUT INTERNAL VARIABLES -------------------------------------- - - public $type = 'HTML'; - public $manager; /**< Instance of HTMLPurifier_HTMLModuleManager */ - - /** - * Performs low-cost, preliminary initialization. - */ - public function __construct() { - $this->manager = new HTMLPurifier_HTMLModuleManager(); - } - - protected function doSetup($config) { - $this->processModules($config); - $this->setupConfigStuff($config); - unset($this->manager); - - // cleanup some of the element definitions - foreach ($this->info as $k => $v) { - unset($this->info[$k]->content_model); - unset($this->info[$k]->content_model_type); - } - } - - /** - * Extract out the information from the manager - */ - protected function processModules($config) { - - if ($this->_anonModule) { - // for user specific changes - // this is late-loaded so we don't have to deal with PHP4 - // reference wonky-ness - $this->manager->addModule($this->_anonModule); - unset($this->_anonModule); - } - - $this->manager->setup($config); - $this->doctype = $this->manager->doctype; - - foreach ($this->manager->modules as $module) { - foreach($module->info_tag_transform as $k => $v) { - if ($v === false) unset($this->info_tag_transform[$k]); - else $this->info_tag_transform[$k] = $v; - } - foreach($module->info_attr_transform_pre as $k => $v) { - if ($v === false) unset($this->info_attr_transform_pre[$k]); - else $this->info_attr_transform_pre[$k] = $v; - } - foreach($module->info_attr_transform_post as $k => $v) { - if ($v === false) unset($this->info_attr_transform_post[$k]); - else $this->info_attr_transform_post[$k] = $v; - } - foreach ($module->info_injector as $k => $v) { - if ($v === false) unset($this->info_injector[$k]); - else $this->info_injector[$k] = $v; - } - } - - $this->info = $this->manager->getElements(); - $this->info_content_sets = $this->manager->contentSets->lookup; - - } - - /** - * Sets up stuff based on config. We need a better way of doing this. - */ - protected function setupConfigStuff($config) { - - $block_wrapper = $config->get('HTML.BlockWrapper'); - if (isset($this->info_content_sets['Block'][$block_wrapper])) { - $this->info_block_wrapper = $block_wrapper; - } else { - trigger_error('Cannot use non-block element as block wrapper', - E_USER_ERROR); - } - - $parent = $config->get('HTML.Parent'); - $def = $this->manager->getElement($parent, true); - if ($def) { - $this->info_parent = $parent; - $this->info_parent_def = $def; - } else { - trigger_error('Cannot use unrecognized element as parent', - E_USER_ERROR); - $this->info_parent_def = $this->manager->getElement($this->info_parent, true); - } - - // support template text - $support = "(for information on implementing this, see the ". - "support forums) "; - - // setup allowed elements ----------------------------------------- - - $allowed_elements = $config->get('HTML.AllowedElements'); - $allowed_attributes = $config->get('HTML.AllowedAttributes'); // retrieve early - - if (!is_array($allowed_elements) && !is_array($allowed_attributes)) { - $allowed = $config->get('HTML.Allowed'); - if (is_string($allowed)) { - list($allowed_elements, $allowed_attributes) = $this->parseTinyMCEAllowedList($allowed); - } - } - - if (is_array($allowed_elements)) { - foreach ($this->info as $name => $d) { - if(!isset($allowed_elements[$name])) unset($this->info[$name]); - unset($allowed_elements[$name]); - } - // emit errors - foreach ($allowed_elements as $element => $d) { - $element = htmlspecialchars($element); // PHP doesn't escape errors, be careful! - trigger_error("Element '$element' is not supported $support", E_USER_WARNING); - } - } - - // setup allowed attributes --------------------------------------- - - $allowed_attributes_mutable = $allowed_attributes; // by copy! - if (is_array($allowed_attributes)) { - - // This actually doesn't do anything, since we went away from - // global attributes. It's possible that userland code uses - // it, but HTMLModuleManager doesn't! - foreach ($this->info_global_attr as $attr => $x) { - $keys = array($attr, "*@$attr", "*.$attr"); - $delete = true; - foreach ($keys as $key) { - if ($delete && isset($allowed_attributes[$key])) { - $delete = false; - } - if (isset($allowed_attributes_mutable[$key])) { - unset($allowed_attributes_mutable[$key]); - } - } - if ($delete) unset($this->info_global_attr[$attr]); - } - - foreach ($this->info as $tag => $info) { - foreach ($info->attr as $attr => $x) { - $keys = array("$tag@$attr", $attr, "*@$attr", "$tag.$attr", "*.$attr"); - $delete = true; - foreach ($keys as $key) { - if ($delete && isset($allowed_attributes[$key])) { - $delete = false; - } - if (isset($allowed_attributes_mutable[$key])) { - unset($allowed_attributes_mutable[$key]); - } - } - if ($delete) { - if ($this->info[$tag]->attr[$attr]->required) { - trigger_error("Required attribute '$attr' in element '$tag' was not allowed, which means '$tag' will not be allowed either", E_USER_WARNING); - } - unset($this->info[$tag]->attr[$attr]); - } - } - } - // emit errors - foreach ($allowed_attributes_mutable as $elattr => $d) { - $bits = preg_split('/[.@]/', $elattr, 2); - $c = count($bits); - switch ($c) { - case 2: - if ($bits[0] !== '*') { - $element = htmlspecialchars($bits[0]); - $attribute = htmlspecialchars($bits[1]); - if (!isset($this->info[$element])) { - trigger_error("Cannot allow attribute '$attribute' if element '$element' is not allowed/supported $support"); - } else { - trigger_error("Attribute '$attribute' in element '$element' not supported $support", - E_USER_WARNING); - } - break; - } - // otherwise fall through - case 1: - $attribute = htmlspecialchars($bits[0]); - trigger_error("Global attribute '$attribute' is not ". - "supported in any elements $support", - E_USER_WARNING); - break; - } - } - - } - - // setup forbidden elements --------------------------------------- - - $forbidden_elements = $config->get('HTML.ForbiddenElements'); - $forbidden_attributes = $config->get('HTML.ForbiddenAttributes'); - - foreach ($this->info as $tag => $info) { - if (isset($forbidden_elements[$tag])) { - unset($this->info[$tag]); - continue; - } - foreach ($info->attr as $attr => $x) { - if ( - isset($forbidden_attributes["$tag@$attr"]) || - isset($forbidden_attributes["*@$attr"]) || - isset($forbidden_attributes[$attr]) - ) { - unset($this->info[$tag]->attr[$attr]); - continue; - } // this segment might get removed eventually - elseif (isset($forbidden_attributes["$tag.$attr"])) { - // $tag.$attr are not user supplied, so no worries! - trigger_error("Error with $tag.$attr: tag.attr syntax not supported for HTML.ForbiddenAttributes; use tag@attr instead", E_USER_WARNING); - } - } - } - foreach ($forbidden_attributes as $key => $v) { - if (strlen($key) < 2) continue; - if ($key[0] != '*') continue; - if ($key[1] == '.') { - trigger_error("Error with $key: *.attr syntax not supported for HTML.ForbiddenAttributes; use attr instead", E_USER_WARNING); - } - } - - // setup injectors ----------------------------------------------------- - foreach ($this->info_injector as $i => $injector) { - if ($injector->checkNeeded($config) !== false) { - // remove injector that does not have it's required - // elements/attributes present, and is thus not needed. - unset($this->info_injector[$i]); - } - } - } - - /** - * Parses a TinyMCE-flavored Allowed Elements and Attributes list into - * separate lists for processing. Format is element[attr1|attr2],element2... - * @warning Although it's largely drawn from TinyMCE's implementation, - * it is different, and you'll probably have to modify your lists - * @param $list String list to parse - * @param array($allowed_elements, $allowed_attributes) - * @todo Give this its own class, probably static interface - */ - public function parseTinyMCEAllowedList($list) { - - $list = str_replace(array(' ', "\t"), '', $list); - - $elements = array(); - $attributes = array(); - - $chunks = preg_split('/(,|[\n\r]+)/', $list); - foreach ($chunks as $chunk) { - if (empty($chunk)) continue; - // remove TinyMCE element control characters - if (!strpos($chunk, '[')) { - $element = $chunk; - $attr = false; - } else { - list($element, $attr) = explode('[', $chunk); - } - if ($element !== '*') $elements[$element] = true; - if (!$attr) continue; - $attr = substr($attr, 0, strlen($attr) - 1); // remove trailing ] - $attr = explode('|', $attr); - foreach ($attr as $key) { - $attributes["$element.$key"] = true; - } - } - - return array($elements, $attributes); - - } - - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule.php deleted file mode 100644 index 072cf68..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule.php +++ /dev/null @@ -1,244 +0,0 @@ -info, since the object's data is only info, - * with extra behavior associated with it. - */ - public $attr_collections = array(); - - /** - * Associative array of deprecated tag name to HTMLPurifier_TagTransform - */ - public $info_tag_transform = array(); - - /** - * List of HTMLPurifier_AttrTransform to be performed before validation. - */ - public $info_attr_transform_pre = array(); - - /** - * List of HTMLPurifier_AttrTransform to be performed after validation. - */ - public $info_attr_transform_post = array(); - - /** - * List of HTMLPurifier_Injector to be performed during well-formedness fixing. - * An injector will only be invoked if all of it's pre-requisites are met; - * if an injector fails setup, there will be no error; it will simply be - * silently disabled. - */ - public $info_injector = array(); - - /** - * Boolean flag that indicates whether or not getChildDef is implemented. - * For optimization reasons: may save a call to a function. Be sure - * to set it if you do implement getChildDef(), otherwise it will have - * no effect! - */ - public $defines_child_def = false; - - /** - * Boolean flag whether or not this module is safe. If it is not safe, all - * of its members are unsafe. Modules are safe by default (this might be - * slightly dangerous, but it doesn't make much sense to force HTML Purifier, - * which is based off of safe HTML, to explicitly say, "This is safe," even - * though there are modules which are "unsafe") - * - * @note Previously, safety could be applied at an element level granularity. - * We've removed this ability, so in order to add "unsafe" elements - * or attributes, a dedicated module with this property set to false - * must be used. - */ - public $safe = true; - - /** - * Retrieves a proper HTMLPurifier_ChildDef subclass based on - * content_model and content_model_type member variables of - * the HTMLPurifier_ElementDef class. There is a similar function - * in HTMLPurifier_HTMLDefinition. - * @param $def HTMLPurifier_ElementDef instance - * @return HTMLPurifier_ChildDef subclass - */ - public function getChildDef($def) {return false;} - - // -- Convenience ----------------------------------------------------- - - /** - * Convenience function that sets up a new element - * @param $element Name of element to add - * @param $type What content set should element be registered to? - * Set as false to skip this step. - * @param $contents Allowed children in form of: - * "$content_model_type: $content_model" - * @param $attr_includes What attribute collections to register to - * element? - * @param $attr What unique attributes does the element define? - * @note See ElementDef for in-depth descriptions of these parameters. - * @return Created element definition object, so you - * can set advanced parameters - */ - public function addElement($element, $type, $contents, $attr_includes = array(), $attr = array()) { - $this->elements[] = $element; - // parse content_model - list($content_model_type, $content_model) = $this->parseContents($contents); - // merge in attribute inclusions - $this->mergeInAttrIncludes($attr, $attr_includes); - // add element to content sets - if ($type) $this->addElementToContentSet($element, $type); - // create element - $this->info[$element] = HTMLPurifier_ElementDef::create( - $content_model, $content_model_type, $attr - ); - // literal object $contents means direct child manipulation - if (!is_string($contents)) $this->info[$element]->child = $contents; - return $this->info[$element]; - } - - /** - * Convenience function that creates a totally blank, non-standalone - * element. - * @param $element Name of element to create - * @return Created element - */ - public function addBlankElement($element) { - if (!isset($this->info[$element])) { - $this->elements[] = $element; - $this->info[$element] = new HTMLPurifier_ElementDef(); - $this->info[$element]->standalone = false; - } else { - trigger_error("Definition for $element already exists in module, cannot redefine"); - } - return $this->info[$element]; - } - - /** - * Convenience function that registers an element to a content set - * @param Element to register - * @param Name content set (warning: case sensitive, usually upper-case - * first letter) - */ - public function addElementToContentSet($element, $type) { - if (!isset($this->content_sets[$type])) $this->content_sets[$type] = ''; - else $this->content_sets[$type] .= ' | '; - $this->content_sets[$type] .= $element; - } - - /** - * Convenience function that transforms single-string contents - * into separate content model and content model type - * @param $contents Allowed children in form of: - * "$content_model_type: $content_model" - * @note If contents is an object, an array of two nulls will be - * returned, and the callee needs to take the original $contents - * and use it directly. - */ - public function parseContents($contents) { - if (!is_string($contents)) return array(null, null); // defer - switch ($contents) { - // check for shorthand content model forms - case 'Empty': - return array('empty', ''); - case 'Inline': - return array('optional', 'Inline | #PCDATA'); - case 'Flow': - return array('optional', 'Flow | #PCDATA'); - } - list($content_model_type, $content_model) = explode(':', $contents); - $content_model_type = strtolower(trim($content_model_type)); - $content_model = trim($content_model); - return array($content_model_type, $content_model); - } - - /** - * Convenience function that merges a list of attribute includes into - * an attribute array. - * @param $attr Reference to attr array to modify - * @param $attr_includes Array of includes / string include to merge in - */ - public function mergeInAttrIncludes(&$attr, $attr_includes) { - if (!is_array($attr_includes)) { - if (empty($attr_includes)) $attr_includes = array(); - else $attr_includes = array($attr_includes); - } - $attr[0] = $attr_includes; - } - - /** - * Convenience function that generates a lookup table with boolean - * true as value. - * @param $list List of values to turn into a lookup - * @note You can also pass an arbitrary number of arguments in - * place of the regular argument - * @return Lookup array equivalent of list - */ - public function makeLookup($list) { - if (is_string($list)) $list = func_get_args(); - $ret = array(); - foreach ($list as $value) { - if (is_null($value)) continue; - $ret[$value] = true; - } - return $ret; - } - - /** - * Lazy load construction of the module after determining whether - * or not it's needed, and also when a finalized configuration object - * is available. - * @param $config Instance of HTMLPurifier_Config - */ - public function setup($config) {} - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Bdo.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Bdo.php deleted file mode 100644 index 3d66f1b..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Bdo.php +++ /dev/null @@ -1,31 +0,0 @@ - array('dir' => false) - ); - - public function setup($config) { - $bdo = $this->addElement( - 'bdo', 'Inline', 'Inline', array('Core', 'Lang'), - array( - 'dir' => 'Enum#ltr,rtl', // required - // The Abstract Module specification has the attribute - // inclusions wrong for bdo: bdo allows Lang - ) - ); - $bdo->attr_transform_post['required-dir'] = new HTMLPurifier_AttrTransform_BdoDir(); - - $this->attr_collections['I18N']['dir'] = 'Enum#ltr,rtl'; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/CommonAttributes.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/CommonAttributes.php deleted file mode 100644 index 7c15da8..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/CommonAttributes.php +++ /dev/null @@ -1,26 +0,0 @@ - array( - 0 => array('Style'), - // 'xml:space' => false, - 'class' => 'Class', - 'id' => 'ID', - 'title' => 'CDATA', - ), - 'Lang' => array(), - 'I18N' => array( - 0 => array('Lang'), // proprietary, for xml:lang/lang - ), - 'Common' => array( - 0 => array('Core', 'I18N') - ) - ); - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Edit.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Edit.php deleted file mode 100644 index ff93690..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Edit.php +++ /dev/null @@ -1,38 +0,0 @@ - 'URI', - // 'datetime' => 'Datetime', // not implemented - ); - $this->addElement('del', 'Inline', $contents, 'Common', $attr); - $this->addElement('ins', 'Inline', $contents, 'Common', $attr); - } - - // HTML 4.01 specifies that ins/del must not contain block - // elements when used in an inline context, chameleon is - // a complicated workaround to acheive this effect - - // Inline context ! Block context (exclamation mark is - // separator, see getChildDef for parsing) - - public $defines_child_def = true; - public function getChildDef($def) { - if ($def->content_model_type != 'chameleon') return false; - $value = explode('!', $def->content_model); - return new HTMLPurifier_ChildDef_Chameleon($value[0], $value[1]); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Forms.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Forms.php deleted file mode 100644 index 44c22f6..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Forms.php +++ /dev/null @@ -1,118 +0,0 @@ - 'Form', - 'Inline' => 'Formctrl', - ); - - public function setup($config) { - $form = $this->addElement('form', 'Form', - 'Required: Heading | List | Block | fieldset', 'Common', array( - 'accept' => 'ContentTypes', - 'accept-charset' => 'Charsets', - 'action*' => 'URI', - 'method' => 'Enum#get,post', - // really ContentType, but these two are the only ones used today - 'enctype' => 'Enum#application/x-www-form-urlencoded,multipart/form-data', - )); - $form->excludes = array('form' => true); - - $input = $this->addElement('input', 'Formctrl', 'Empty', 'Common', array( - 'accept' => 'ContentTypes', - 'accesskey' => 'Character', - 'alt' => 'Text', - 'checked' => 'Bool#checked', - 'disabled' => 'Bool#disabled', - 'maxlength' => 'Number', - 'name' => 'CDATA', - 'readonly' => 'Bool#readonly', - 'size' => 'Number', - 'src' => 'URI#embeds', - 'tabindex' => 'Number', - 'type' => 'Enum#text,password,checkbox,button,radio,submit,reset,file,hidden,image', - 'value' => 'CDATA', - )); - $input->attr_transform_post[] = new HTMLPurifier_AttrTransform_Input(); - - $this->addElement('select', 'Formctrl', 'Required: optgroup | option', 'Common', array( - 'disabled' => 'Bool#disabled', - 'multiple' => 'Bool#multiple', - 'name' => 'CDATA', - 'size' => 'Number', - 'tabindex' => 'Number', - )); - - $this->addElement('option', false, 'Optional: #PCDATA', 'Common', array( - 'disabled' => 'Bool#disabled', - 'label' => 'Text', - 'selected' => 'Bool#selected', - 'value' => 'CDATA', - )); - // It's illegal for there to be more than one selected, but not - // be multiple. Also, no selected means undefined behavior. This might - // be difficult to implement; perhaps an injector, or a context variable. - - $textarea = $this->addElement('textarea', 'Formctrl', 'Optional: #PCDATA', 'Common', array( - 'accesskey' => 'Character', - 'cols*' => 'Number', - 'disabled' => 'Bool#disabled', - 'name' => 'CDATA', - 'readonly' => 'Bool#readonly', - 'rows*' => 'Number', - 'tabindex' => 'Number', - )); - $textarea->attr_transform_pre[] = new HTMLPurifier_AttrTransform_Textarea(); - - $button = $this->addElement('button', 'Formctrl', 'Optional: #PCDATA | Heading | List | Block | Inline', 'Common', array( - 'accesskey' => 'Character', - 'disabled' => 'Bool#disabled', - 'name' => 'CDATA', - 'tabindex' => 'Number', - 'type' => 'Enum#button,submit,reset', - 'value' => 'CDATA', - )); - - // For exclusions, ideally we'd specify content sets, not literal elements - $button->excludes = $this->makeLookup( - 'form', 'fieldset', // Form - 'input', 'select', 'textarea', 'label', 'button', // Formctrl - 'a' // as per HTML 4.01 spec, this is omitted by modularization - ); - - // Extra exclusion: img usemap="" is not permitted within this element. - // We'll omit this for now, since we don't have any good way of - // indicating it yet. - - // This is HIGHLY user-unfriendly; we need a custom child-def for this - $this->addElement('fieldset', 'Form', 'Custom: (#WS?,legend,(Flow|#PCDATA)*)', 'Common'); - - $label = $this->addElement('label', 'Formctrl', 'Optional: #PCDATA | Inline', 'Common', array( - 'accesskey' => 'Character', - // 'for' => 'IDREF', // IDREF not implemented, cannot allow - )); - $label->excludes = array('label' => true); - - $this->addElement('legend', false, 'Optional: #PCDATA | Inline', 'Common', array( - 'accesskey' => 'Character', - )); - - $this->addElement('optgroup', false, 'Required: option', 'Common', array( - 'disabled' => 'Bool#disabled', - 'label*' => 'Text', - )); - - // Don't forget an injector for . This one's a little complex - // because it maps to multiple elements. - - } -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Hypertext.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Hypertext.php deleted file mode 100644 index d7e9bdd..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Hypertext.php +++ /dev/null @@ -1,31 +0,0 @@ -addElement( - 'a', 'Inline', 'Inline', 'Common', - array( - // 'accesskey' => 'Character', - // 'charset' => 'Charset', - 'href' => 'URI', - // 'hreflang' => 'LanguageCode', - 'rel' => new HTMLPurifier_AttrDef_HTML_LinkTypes('rel'), - 'rev' => new HTMLPurifier_AttrDef_HTML_LinkTypes('rev'), - // 'tabindex' => 'Number', - // 'type' => 'ContentType', - ) - ); - $a->formatting = true; - $a->excludes = array('a' => true); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Image.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Image.php deleted file mode 100644 index 948d435..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Image.php +++ /dev/null @@ -1,40 +0,0 @@ -get('HTML.MaxImgLength'); - $img = $this->addElement( - 'img', 'Inline', 'Empty', 'Common', - array( - 'alt*' => 'Text', - // According to the spec, it's Length, but percents can - // be abused, so we allow only Pixels. - 'height' => 'Pixels#' . $max, - 'width' => 'Pixels#' . $max, - 'longdesc' => 'URI', - 'src*' => new HTMLPurifier_AttrDef_URI(true), // embedded - ) - ); - if ($max === null || $config->get('HTML.Trusted')) { - $img->attr['height'] = - $img->attr['width'] = 'Length'; - } - - // kind of strange, but splitting things up would be inefficient - $img->attr_transform_pre[] = - $img->attr_transform_post[] = - new HTMLPurifier_AttrTransform_ImgRequired(); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Legacy.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Legacy.php deleted file mode 100644 index df33927..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Legacy.php +++ /dev/null @@ -1,143 +0,0 @@ -addElement('basefont', 'Inline', 'Empty', false, array( - 'color' => 'Color', - 'face' => 'Text', // extremely broad, we should - 'size' => 'Text', // tighten it - 'id' => 'ID' - )); - $this->addElement('center', 'Block', 'Flow', 'Common'); - $this->addElement('dir', 'Block', 'Required: li', 'Common', array( - 'compact' => 'Bool#compact' - )); - $this->addElement('font', 'Inline', 'Inline', array('Core', 'I18N'), array( - 'color' => 'Color', - 'face' => 'Text', // extremely broad, we should - 'size' => 'Text', // tighten it - )); - $this->addElement('menu', 'Block', 'Required: li', 'Common', array( - 'compact' => 'Bool#compact' - )); - - $s = $this->addElement('s', 'Inline', 'Inline', 'Common'); - $s->formatting = true; - - $strike = $this->addElement('strike', 'Inline', 'Inline', 'Common'); - $strike->formatting = true; - - $u = $this->addElement('u', 'Inline', 'Inline', 'Common'); - $u->formatting = true; - - // setup modifications to old elements - - $align = 'Enum#left,right,center,justify'; - - $address = $this->addBlankElement('address'); - $address->content_model = 'Inline | #PCDATA | p'; - $address->content_model_type = 'optional'; - $address->child = false; - - $blockquote = $this->addBlankElement('blockquote'); - $blockquote->content_model = 'Flow | #PCDATA'; - $blockquote->content_model_type = 'optional'; - $blockquote->child = false; - - $br = $this->addBlankElement('br'); - $br->attr['clear'] = 'Enum#left,all,right,none'; - - $caption = $this->addBlankElement('caption'); - $caption->attr['align'] = 'Enum#top,bottom,left,right'; - - $div = $this->addBlankElement('div'); - $div->attr['align'] = $align; - - $dl = $this->addBlankElement('dl'); - $dl->attr['compact'] = 'Bool#compact'; - - for ($i = 1; $i <= 6; $i++) { - $h = $this->addBlankElement("h$i"); - $h->attr['align'] = $align; - } - - $hr = $this->addBlankElement('hr'); - $hr->attr['align'] = $align; - $hr->attr['noshade'] = 'Bool#noshade'; - $hr->attr['size'] = 'Pixels'; - $hr->attr['width'] = 'Length'; - - $img = $this->addBlankElement('img'); - $img->attr['align'] = 'Enum#top,middle,bottom,left,right'; - $img->attr['border'] = 'Pixels'; - $img->attr['hspace'] = 'Pixels'; - $img->attr['vspace'] = 'Pixels'; - - // figure out this integer business - - $li = $this->addBlankElement('li'); - $li->attr['value'] = new HTMLPurifier_AttrDef_Integer(); - $li->attr['type'] = 'Enum#s:1,i,I,a,A,disc,square,circle'; - - $ol = $this->addBlankElement('ol'); - $ol->attr['compact'] = 'Bool#compact'; - $ol->attr['start'] = new HTMLPurifier_AttrDef_Integer(); - $ol->attr['type'] = 'Enum#s:1,i,I,a,A'; - - $p = $this->addBlankElement('p'); - $p->attr['align'] = $align; - - $pre = $this->addBlankElement('pre'); - $pre->attr['width'] = 'Number'; - - // script omitted - - $table = $this->addBlankElement('table'); - $table->attr['align'] = 'Enum#left,center,right'; - $table->attr['bgcolor'] = 'Color'; - - $tr = $this->addBlankElement('tr'); - $tr->attr['bgcolor'] = 'Color'; - - $th = $this->addBlankElement('th'); - $th->attr['bgcolor'] = 'Color'; - $th->attr['height'] = 'Length'; - $th->attr['nowrap'] = 'Bool#nowrap'; - $th->attr['width'] = 'Length'; - - $td = $this->addBlankElement('td'); - $td->attr['bgcolor'] = 'Color'; - $td->attr['height'] = 'Length'; - $td->attr['nowrap'] = 'Bool#nowrap'; - $td->attr['width'] = 'Length'; - - $ul = $this->addBlankElement('ul'); - $ul->attr['compact'] = 'Bool#compact'; - $ul->attr['type'] = 'Enum#square,disc,circle'; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/List.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/List.php deleted file mode 100644 index 74d4522..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/List.php +++ /dev/null @@ -1,37 +0,0 @@ - 'List'); - - public function setup($config) { - $ol = $this->addElement('ol', 'List', 'Required: li', 'Common'); - $ol->wrap = "li"; - $ul = $this->addElement('ul', 'List', 'Required: li', 'Common'); - $ul->wrap = "li"; - $this->addElement('dl', 'List', 'Required: dt | dd', 'Common'); - - $this->addElement('li', false, 'Flow', 'Common'); - - $this->addElement('dd', false, 'Flow', 'Common'); - $this->addElement('dt', false, 'Inline', 'Common'); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Name.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Name.php deleted file mode 100644 index 05694b4..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Name.php +++ /dev/null @@ -1,21 +0,0 @@ -addBlankElement($name); - $element->attr['name'] = 'CDATA'; - if (!$config->get('HTML.Attr.Name.UseCDATA')) { - $element->attr_transform_post['NameSync'] = new HTMLPurifier_AttrTransform_NameSync(); - } - } - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Nofollow.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Nofollow.php deleted file mode 100644 index 3aa6654..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Nofollow.php +++ /dev/null @@ -1,19 +0,0 @@ -addBlankElement('a'); - $a->attr_transform_post[] = new HTMLPurifier_AttrTransform_Nofollow(); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php deleted file mode 100644 index 5f1b14a..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php +++ /dev/null @@ -1,14 +0,0 @@ - array( - 'lang' => 'LanguageCode', - ) - ); -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Object.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Object.php deleted file mode 100644 index 193c101..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Object.php +++ /dev/null @@ -1,47 +0,0 @@ - to cater to legacy browsers: this - * module does not allow this sort of behavior - */ -class HTMLPurifier_HTMLModule_Object extends HTMLPurifier_HTMLModule -{ - - public $name = 'Object'; - public $safe = false; - - public function setup($config) { - - $this->addElement('object', 'Inline', 'Optional: #PCDATA | Flow | param', 'Common', - array( - 'archive' => 'URI', - 'classid' => 'URI', - 'codebase' => 'URI', - 'codetype' => 'Text', - 'data' => 'URI', - 'declare' => 'Bool#declare', - 'height' => 'Length', - 'name' => 'CDATA', - 'standby' => 'Text', - 'tabindex' => 'Number', - 'type' => 'ContentType', - 'width' => 'Length' - ) - ); - - $this->addElement('param', false, 'Empty', false, - array( - 'id' => 'ID', - 'name*' => 'Text', - 'type' => 'Text', - 'value' => 'Text', - 'valuetype' => 'Enum#data,ref,object' - ) - ); - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Presentation.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Presentation.php deleted file mode 100644 index 8ff0b5e..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Presentation.php +++ /dev/null @@ -1,36 +0,0 @@ -addElement('hr', 'Block', 'Empty', 'Common'); - $this->addElement('sub', 'Inline', 'Inline', 'Common'); - $this->addElement('sup', 'Inline', 'Inline', 'Common'); - $b = $this->addElement('b', 'Inline', 'Inline', 'Common'); - $b->formatting = true; - $big = $this->addElement('big', 'Inline', 'Inline', 'Common'); - $big->formatting = true; - $i = $this->addElement('i', 'Inline', 'Inline', 'Common'); - $i->formatting = true; - $small = $this->addElement('small', 'Inline', 'Inline', 'Common'); - $small->formatting = true; - $tt = $this->addElement('tt', 'Inline', 'Inline', 'Common'); - $tt->formatting = true; - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Proprietary.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Proprietary.php deleted file mode 100644 index dd36a3d..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Proprietary.php +++ /dev/null @@ -1,33 +0,0 @@ -addElement('marquee', 'Inline', 'Flow', 'Common', - array( - 'direction' => 'Enum#left,right,up,down', - 'behavior' => 'Enum#alternate', - 'width' => 'Length', - 'height' => 'Length', - 'scrolldelay' => 'Number', - 'scrollamount' => 'Number', - 'loop' => 'Number', - 'bgcolor' => 'Color', - 'hspace' => 'Pixels', - 'vspace' => 'Pixels', - ) - ); - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Ruby.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Ruby.php deleted file mode 100644 index b26a0a3..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Ruby.php +++ /dev/null @@ -1,27 +0,0 @@ -addElement('ruby', 'Inline', - 'Custom: ((rb, (rt | (rp, rt, rp))) | (rbc, rtc, rtc?))', - 'Common'); - $this->addElement('rbc', false, 'Required: rb', 'Common'); - $this->addElement('rtc', false, 'Required: rt', 'Common'); - $rb = $this->addElement('rb', false, 'Inline', 'Common'); - $rb->excludes = array('ruby' => true); - $rt = $this->addElement('rt', false, 'Inline', 'Common', array('rbspan' => 'Number')); - $rt->excludes = array('ruby' => true); - $this->addElement('rp', false, 'Optional: #PCDATA', 'Common'); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/SafeEmbed.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/SafeEmbed.php deleted file mode 100644 index 9f3758a..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/SafeEmbed.php +++ /dev/null @@ -1,34 +0,0 @@ -get('HTML.MaxImgLength'); - $embed = $this->addElement( - 'embed', 'Inline', 'Empty', 'Common', - array( - 'src*' => 'URI#embedded', - 'type' => 'Enum#application/x-shockwave-flash', - 'width' => 'Pixels#' . $max, - 'height' => 'Pixels#' . $max, - 'allowscriptaccess' => 'Enum#never', - 'allownetworking' => 'Enum#internal', - 'flashvars' => 'Text', - 'wmode' => 'Enum#window,transparent,opaque', - 'name' => 'ID', - ) - ); - $embed->attr_transform_post[] = new HTMLPurifier_AttrTransform_SafeEmbed(); - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/SafeObject.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/SafeObject.php deleted file mode 100644 index 00da342..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/SafeObject.php +++ /dev/null @@ -1,52 +0,0 @@ -get('HTML.MaxImgLength'); - $object = $this->addElement( - 'object', - 'Inline', - 'Optional: param | Flow | #PCDATA', - 'Common', - array( - // While technically not required by the spec, we're forcing - // it to this value. - 'type' => 'Enum#application/x-shockwave-flash', - 'width' => 'Pixels#' . $max, - 'height' => 'Pixels#' . $max, - 'data' => 'URI#embedded', - 'codebase' => new HTMLPurifier_AttrDef_Enum(array( - 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0')), - ) - ); - $object->attr_transform_post[] = new HTMLPurifier_AttrTransform_SafeObject(); - - $param = $this->addElement('param', false, 'Empty', false, - array( - 'id' => 'ID', - 'name*' => 'Text', - 'value' => 'Text' - ) - ); - $param->attr_transform_post[] = new HTMLPurifier_AttrTransform_SafeParam(); - $this->info_injector[] = 'SafeObject'; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Scripting.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Scripting.php deleted file mode 100644 index cecdea6..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Scripting.php +++ /dev/null @@ -1,54 +0,0 @@ - 'script | noscript', 'Inline' => 'script | noscript'); - public $safe = false; - - public function setup($config) { - // TODO: create custom child-definition for noscript that - // auto-wraps stray #PCDATA in a similar manner to - // blockquote's custom definition (we would use it but - // blockquote's contents are optional while noscript's contents - // are required) - - // TODO: convert this to new syntax, main problem is getting - // both content sets working - - // In theory, this could be safe, but I don't see any reason to - // allow it. - $this->info['noscript'] = new HTMLPurifier_ElementDef(); - $this->info['noscript']->attr = array( 0 => array('Common') ); - $this->info['noscript']->content_model = 'Heading | List | Block'; - $this->info['noscript']->content_model_type = 'required'; - - $this->info['script'] = new HTMLPurifier_ElementDef(); - $this->info['script']->attr = array( - 'defer' => new HTMLPurifier_AttrDef_Enum(array('defer')), - 'src' => new HTMLPurifier_AttrDef_URI(true), - 'type' => new HTMLPurifier_AttrDef_Enum(array('text/javascript')) - ); - $this->info['script']->content_model = '#PCDATA'; - $this->info['script']->content_model_type = 'optional'; - $this->info['script']->attr_transform_pre['type'] = - $this->info['script']->attr_transform_post['type'] = - new HTMLPurifier_AttrTransform_ScriptRequired(); - } -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/StyleAttribute.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/StyleAttribute.php deleted file mode 100644 index eb78464..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/StyleAttribute.php +++ /dev/null @@ -1,24 +0,0 @@ - array('style' => false), // see constructor - 'Core' => array(0 => array('Style')) - ); - - public function setup($config) { - $this->attr_collections['Style']['style'] = new HTMLPurifier_AttrDef_CSS(); - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Tables.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Tables.php deleted file mode 100644 index f314ced..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Tables.php +++ /dev/null @@ -1,66 +0,0 @@ -addElement('caption', false, 'Inline', 'Common'); - - $this->addElement('table', 'Block', - new HTMLPurifier_ChildDef_Table(), 'Common', - array( - 'border' => 'Pixels', - 'cellpadding' => 'Length', - 'cellspacing' => 'Length', - 'frame' => 'Enum#void,above,below,hsides,lhs,rhs,vsides,box,border', - 'rules' => 'Enum#none,groups,rows,cols,all', - 'summary' => 'Text', - 'width' => 'Length' - ) - ); - - // common attributes - $cell_align = array( - 'align' => 'Enum#left,center,right,justify,char', - 'charoff' => 'Length', - 'valign' => 'Enum#top,middle,bottom,baseline', - ); - - $cell_t = array_merge( - array( - 'abbr' => 'Text', - 'colspan' => 'Number', - 'rowspan' => 'Number', - ), - $cell_align - ); - $this->addElement('td', false, 'Flow', 'Common', $cell_t); - $this->addElement('th', false, 'Flow', 'Common', $cell_t); - - $this->addElement('tr', false, 'Required: td | th', 'Common', $cell_align); - - $cell_col = array_merge( - array( - 'span' => 'Number', - 'width' => 'MultiLength', - ), - $cell_align - ); - $this->addElement('col', false, 'Empty', 'Common', $cell_col); - $this->addElement('colgroup', false, 'Optional: col', 'Common', $cell_col); - - $this->addElement('tbody', false, 'Required: tr', 'Common', $cell_align); - $this->addElement('thead', false, 'Required: tr', 'Common', $cell_align); - $this->addElement('tfoot', false, 'Required: tr', 'Common', $cell_align); - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Target.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Target.php deleted file mode 100644 index 2b844ec..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Target.php +++ /dev/null @@ -1,23 +0,0 @@ -addBlankElement($name); - $e->attr = array( - 'target' => new HTMLPurifier_AttrDef_HTML_FrameTarget() - ); - } - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Text.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Text.php deleted file mode 100644 index ae77c71..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Text.php +++ /dev/null @@ -1,71 +0,0 @@ - 'Heading | Block | Inline' - ); - - public function setup($config) { - - // Inline Phrasal ------------------------------------------------- - $this->addElement('abbr', 'Inline', 'Inline', 'Common'); - $this->addElement('acronym', 'Inline', 'Inline', 'Common'); - $this->addElement('cite', 'Inline', 'Inline', 'Common'); - $this->addElement('dfn', 'Inline', 'Inline', 'Common'); - $this->addElement('kbd', 'Inline', 'Inline', 'Common'); - $this->addElement('q', 'Inline', 'Inline', 'Common', array('cite' => 'URI')); - $this->addElement('samp', 'Inline', 'Inline', 'Common'); - $this->addElement('var', 'Inline', 'Inline', 'Common'); - - $em = $this->addElement('em', 'Inline', 'Inline', 'Common'); - $em->formatting = true; - - $strong = $this->addElement('strong', 'Inline', 'Inline', 'Common'); - $strong->formatting = true; - - $code = $this->addElement('code', 'Inline', 'Inline', 'Common'); - $code->formatting = true; - - // Inline Structural ---------------------------------------------- - $this->addElement('span', 'Inline', 'Inline', 'Common'); - $this->addElement('br', 'Inline', 'Empty', 'Core'); - - // Block Phrasal -------------------------------------------------- - $this->addElement('address', 'Block', 'Inline', 'Common'); - $this->addElement('blockquote', 'Block', 'Optional: Heading | Block | List', 'Common', array('cite' => 'URI') ); - $pre = $this->addElement('pre', 'Block', 'Inline', 'Common'); - $pre->excludes = $this->makeLookup( - 'img', 'big', 'small', 'object', 'applet', 'font', 'basefont' ); - $this->addElement('h1', 'Heading', 'Inline', 'Common'); - $this->addElement('h2', 'Heading', 'Inline', 'Common'); - $this->addElement('h3', 'Heading', 'Inline', 'Common'); - $this->addElement('h4', 'Heading', 'Inline', 'Common'); - $this->addElement('h5', 'Heading', 'Inline', 'Common'); - $this->addElement('h6', 'Heading', 'Inline', 'Common'); - - // Block Structural ----------------------------------------------- - $p = $this->addElement('p', 'Block', 'Inline', 'Common'); - $p->autoclose = array_flip(array("address", "blockquote", "center", "dir", "div", "dl", "fieldset", "ol", "p", "ul")); - - $this->addElement('div', 'Block', 'Flow', 'Common'); - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Tidy.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Tidy.php deleted file mode 100644 index 21783f1..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Tidy.php +++ /dev/null @@ -1,207 +0,0 @@ - 'none', 'light', 'medium', 'heavy'); - - /** - * Default level to place all fixes in. Disabled by default - */ - public $defaultLevel = null; - - /** - * Lists of fixes used by getFixesForLevel(). Format is: - * HTMLModule_Tidy->fixesForLevel[$level] = array('fix-1', 'fix-2'); - */ - public $fixesForLevel = array( - 'light' => array(), - 'medium' => array(), - 'heavy' => array() - ); - - /** - * Lazy load constructs the module by determining the necessary - * fixes to create and then delegating to the populate() function. - * @todo Wildcard matching and error reporting when an added or - * subtracted fix has no effect. - */ - public function setup($config) { - - // create fixes, initialize fixesForLevel - $fixes = $this->makeFixes(); - $this->makeFixesForLevel($fixes); - - // figure out which fixes to use - $level = $config->get('HTML.TidyLevel'); - $fixes_lookup = $this->getFixesForLevel($level); - - // get custom fix declarations: these need namespace processing - $add_fixes = $config->get('HTML.TidyAdd'); - $remove_fixes = $config->get('HTML.TidyRemove'); - - foreach ($fixes as $name => $fix) { - // needs to be refactored a little to implement globbing - if ( - isset($remove_fixes[$name]) || - (!isset($add_fixes[$name]) && !isset($fixes_lookup[$name])) - ) { - unset($fixes[$name]); - } - } - - // populate this module with necessary fixes - $this->populate($fixes); - - } - - /** - * Retrieves all fixes per a level, returning fixes for that specific - * level as well as all levels below it. - * @param $level String level identifier, see $levels for valid values - * @return Lookup up table of fixes - */ - public function getFixesForLevel($level) { - if ($level == $this->levels[0]) { - return array(); - } - $activated_levels = array(); - for ($i = 1, $c = count($this->levels); $i < $c; $i++) { - $activated_levels[] = $this->levels[$i]; - if ($this->levels[$i] == $level) break; - } - if ($i == $c) { - trigger_error( - 'Tidy level ' . htmlspecialchars($level) . ' not recognized', - E_USER_WARNING - ); - return array(); - } - $ret = array(); - foreach ($activated_levels as $level) { - foreach ($this->fixesForLevel[$level] as $fix) { - $ret[$fix] = true; - } - } - return $ret; - } - - /** - * Dynamically populates the $fixesForLevel member variable using - * the fixes array. It may be custom overloaded, used in conjunction - * with $defaultLevel, or not used at all. - */ - public function makeFixesForLevel($fixes) { - if (!isset($this->defaultLevel)) return; - if (!isset($this->fixesForLevel[$this->defaultLevel])) { - trigger_error( - 'Default level ' . $this->defaultLevel . ' does not exist', - E_USER_ERROR - ); - return; - } - $this->fixesForLevel[$this->defaultLevel] = array_keys($fixes); - } - - /** - * Populates the module with transforms and other special-case code - * based on a list of fixes passed to it - * @param $lookup Lookup table of fixes to activate - */ - public function populate($fixes) { - foreach ($fixes as $name => $fix) { - // determine what the fix is for - list($type, $params) = $this->getFixType($name); - switch ($type) { - case 'attr_transform_pre': - case 'attr_transform_post': - $attr = $params['attr']; - if (isset($params['element'])) { - $element = $params['element']; - if (empty($this->info[$element])) { - $e = $this->addBlankElement($element); - } else { - $e = $this->info[$element]; - } - } else { - $type = "info_$type"; - $e = $this; - } - // PHP does some weird parsing when I do - // $e->$type[$attr], so I have to assign a ref. - $f =& $e->$type; - $f[$attr] = $fix; - break; - case 'tag_transform': - $this->info_tag_transform[$params['element']] = $fix; - break; - case 'child': - case 'content_model_type': - $element = $params['element']; - if (empty($this->info[$element])) { - $e = $this->addBlankElement($element); - } else { - $e = $this->info[$element]; - } - $e->$type = $fix; - break; - default: - trigger_error("Fix type $type not supported", E_USER_ERROR); - break; - } - } - } - - /** - * Parses a fix name and determines what kind of fix it is, as well - * as other information defined by the fix - * @param $name String name of fix - * @return array(string $fix_type, array $fix_parameters) - * @note $fix_parameters is type dependant, see populate() for usage - * of these parameters - */ - public function getFixType($name) { - // parse it - $property = $attr = null; - if (strpos($name, '#') !== false) list($name, $property) = explode('#', $name); - if (strpos($name, '@') !== false) list($name, $attr) = explode('@', $name); - - // figure out the parameters - $params = array(); - if ($name !== '') $params['element'] = $name; - if (!is_null($attr)) $params['attr'] = $attr; - - // special case: attribute transform - if (!is_null($attr)) { - if (is_null($property)) $property = 'pre'; - $type = 'attr_transform_' . $property; - return array($type, $params); - } - - // special case: tag transform - if (is_null($property)) { - return array('tag_transform', $params); - } - - return array($property, $params); - - } - - /** - * Defines all fixes the module will perform in a compact - * associative array of fix name to fix implementation. - */ - public function makeFixes() {} - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/Name.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/Name.php deleted file mode 100644 index 61ff85c..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/Name.php +++ /dev/null @@ -1,24 +0,0 @@ -content_model_type != 'strictblockquote') return parent::getChildDef($def); - return new HTMLPurifier_ChildDef_StrictBlockquote($def->content_model); - } -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/Transitional.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/Transitional.php deleted file mode 100644 index 9960b1d..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/Transitional.php +++ /dev/null @@ -1,9 +0,0 @@ - 'text-align:left;', - 'right' => 'text-align:right;', - 'top' => 'caption-side:top;', - 'bottom' => 'caption-side:bottom;' // not supported by IE - )); - - // @align for img ------------------------------------------------- - $r['img@align'] = - new HTMLPurifier_AttrTransform_EnumToCSS('align', array( - 'left' => 'float:left;', - 'right' => 'float:right;', - 'top' => 'vertical-align:top;', - 'middle' => 'vertical-align:middle;', - 'bottom' => 'vertical-align:baseline;', - )); - - // @align for table ----------------------------------------------- - $r['table@align'] = - new HTMLPurifier_AttrTransform_EnumToCSS('align', array( - 'left' => 'float:left;', - 'center' => 'margin-left:auto;margin-right:auto;', - 'right' => 'float:right;' - )); - - // @align for hr ----------------------------------------------- - $r['hr@align'] = - new HTMLPurifier_AttrTransform_EnumToCSS('align', array( - // we use both text-align and margin because these work - // for different browsers (IE and Firefox, respectively) - // and the melange makes for a pretty cross-compatible - // solution - 'left' => 'margin-left:0;margin-right:auto;text-align:left;', - 'center' => 'margin-left:auto;margin-right:auto;text-align:center;', - 'right' => 'margin-left:auto;margin-right:0;text-align:right;' - )); - - // @align for h1, h2, h3, h4, h5, h6, p, div ---------------------- - // {{{ - $align_lookup = array(); - $align_values = array('left', 'right', 'center', 'justify'); - foreach ($align_values as $v) $align_lookup[$v] = "text-align:$v;"; - // }}} - $r['h1@align'] = - $r['h2@align'] = - $r['h3@align'] = - $r['h4@align'] = - $r['h5@align'] = - $r['h6@align'] = - $r['p@align'] = - $r['div@align'] = - new HTMLPurifier_AttrTransform_EnumToCSS('align', $align_lookup); - - // @bgcolor for table, tr, td, th --------------------------------- - $r['table@bgcolor'] = - $r['td@bgcolor'] = - $r['th@bgcolor'] = - new HTMLPurifier_AttrTransform_BgColor(); - - // @border for img ------------------------------------------------ - $r['img@border'] = new HTMLPurifier_AttrTransform_Border(); - - // @clear for br -------------------------------------------------- - $r['br@clear'] = - new HTMLPurifier_AttrTransform_EnumToCSS('clear', array( - 'left' => 'clear:left;', - 'right' => 'clear:right;', - 'all' => 'clear:both;', - 'none' => 'clear:none;', - )); - - // @height for td, th --------------------------------------------- - $r['td@height'] = - $r['th@height'] = - new HTMLPurifier_AttrTransform_Length('height'); - - // @hspace for img ------------------------------------------------ - $r['img@hspace'] = new HTMLPurifier_AttrTransform_ImgSpace('hspace'); - - // @noshade for hr ------------------------------------------------ - // this transformation is not precise but often good enough. - // different browsers use different styles to designate noshade - $r['hr@noshade'] = - new HTMLPurifier_AttrTransform_BoolToCSS( - 'noshade', - 'color:#808080;background-color:#808080;border:0;' - ); - - // @nowrap for td, th --------------------------------------------- - $r['td@nowrap'] = - $r['th@nowrap'] = - new HTMLPurifier_AttrTransform_BoolToCSS( - 'nowrap', - 'white-space:nowrap;' - ); - - // @size for hr -------------------------------------------------- - $r['hr@size'] = new HTMLPurifier_AttrTransform_Length('size', 'height'); - - // @type for li, ol, ul ------------------------------------------- - // {{{ - $ul_types = array( - 'disc' => 'list-style-type:disc;', - 'square' => 'list-style-type:square;', - 'circle' => 'list-style-type:circle;' - ); - $ol_types = array( - '1' => 'list-style-type:decimal;', - 'i' => 'list-style-type:lower-roman;', - 'I' => 'list-style-type:upper-roman;', - 'a' => 'list-style-type:lower-alpha;', - 'A' => 'list-style-type:upper-alpha;' - ); - $li_types = $ul_types + $ol_types; - // }}} - - $r['ul@type'] = new HTMLPurifier_AttrTransform_EnumToCSS('type', $ul_types); - $r['ol@type'] = new HTMLPurifier_AttrTransform_EnumToCSS('type', $ol_types, true); - $r['li@type'] = new HTMLPurifier_AttrTransform_EnumToCSS('type', $li_types, true); - - // @vspace for img ------------------------------------------------ - $r['img@vspace'] = new HTMLPurifier_AttrTransform_ImgSpace('vspace'); - - // @width for hr, td, th ------------------------------------------ - $r['td@width'] = - $r['th@width'] = - $r['hr@width'] = new HTMLPurifier_AttrTransform_Length('width'); - - return $r; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/XMLCommonAttributes.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/XMLCommonAttributes.php deleted file mode 100644 index 9c0e031..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModule/XMLCommonAttributes.php +++ /dev/null @@ -1,14 +0,0 @@ - array( - 'xml:lang' => 'LanguageCode', - ) - ); -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModuleManager.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModuleManager.php deleted file mode 100644 index 362e3b7..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/HTMLModuleManager.php +++ /dev/null @@ -1,403 +0,0 @@ -attrTypes = new HTMLPurifier_AttrTypes(); - $this->doctypes = new HTMLPurifier_DoctypeRegistry(); - - // setup basic modules - $common = array( - 'CommonAttributes', 'Text', 'Hypertext', 'List', - 'Presentation', 'Edit', 'Bdo', 'Tables', 'Image', - 'StyleAttribute', - // Unsafe: - 'Scripting', 'Object', 'Forms', - // Sorta legacy, but present in strict: - 'Name', - ); - $transitional = array('Legacy', 'Target'); - $xml = array('XMLCommonAttributes'); - $non_xml = array('NonXMLCommonAttributes'); - - // setup basic doctypes - $this->doctypes->register( - 'HTML 4.01 Transitional', false, - array_merge($common, $transitional, $non_xml), - array('Tidy_Transitional', 'Tidy_Proprietary'), - array(), - '-//W3C//DTD HTML 4.01 Transitional//EN', - 'http://www.w3.org/TR/html4/loose.dtd' - ); - - $this->doctypes->register( - 'HTML 4.01 Strict', false, - array_merge($common, $non_xml), - array('Tidy_Strict', 'Tidy_Proprietary', 'Tidy_Name'), - array(), - '-//W3C//DTD HTML 4.01//EN', - 'http://www.w3.org/TR/html4/strict.dtd' - ); - - $this->doctypes->register( - 'XHTML 1.0 Transitional', true, - array_merge($common, $transitional, $xml, $non_xml), - array('Tidy_Transitional', 'Tidy_XHTML', 'Tidy_Proprietary', 'Tidy_Name'), - array(), - '-//W3C//DTD XHTML 1.0 Transitional//EN', - 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd' - ); - - $this->doctypes->register( - 'XHTML 1.0 Strict', true, - array_merge($common, $xml, $non_xml), - array('Tidy_Strict', 'Tidy_XHTML', 'Tidy_Strict', 'Tidy_Proprietary', 'Tidy_Name'), - array(), - '-//W3C//DTD XHTML 1.0 Strict//EN', - 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd' - ); - - $this->doctypes->register( - 'XHTML 1.1', true, - array_merge($common, $xml, array('Ruby')), - array('Tidy_Strict', 'Tidy_XHTML', 'Tidy_Proprietary', 'Tidy_Strict', 'Tidy_Name'), // Tidy_XHTML1_1 - array(), - '-//W3C//DTD XHTML 1.1//EN', - 'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd' - ); - - } - - /** - * Registers a module to the recognized module list, useful for - * overloading pre-existing modules. - * @param $module Mixed: string module name, with or without - * HTMLPurifier_HTMLModule prefix, or instance of - * subclass of HTMLPurifier_HTMLModule. - * @param $overload Boolean whether or not to overload previous modules. - * If this is not set, and you do overload a module, - * HTML Purifier will complain with a warning. - * @note This function will not call autoload, you must instantiate - * (and thus invoke) autoload outside the method. - * @note If a string is passed as a module name, different variants - * will be tested in this order: - * - Check for HTMLPurifier_HTMLModule_$name - * - Check all prefixes with $name in order they were added - * - Check for literal object name - * - Throw fatal error - * If your object name collides with an internal class, specify - * your module manually. All modules must have been included - * externally: registerModule will not perform inclusions for you! - */ - public function registerModule($module, $overload = false) { - if (is_string($module)) { - // attempt to load the module - $original_module = $module; - $ok = false; - foreach ($this->prefixes as $prefix) { - $module = $prefix . $original_module; - if (class_exists($module)) { - $ok = true; - break; - } - } - if (!$ok) { - $module = $original_module; - if (!class_exists($module)) { - trigger_error($original_module . ' module does not exist', - E_USER_ERROR); - return; - } - } - $module = new $module(); - } - if (empty($module->name)) { - trigger_error('Module instance of ' . get_class($module) . ' must have name'); - return; - } - if (!$overload && isset($this->registeredModules[$module->name])) { - trigger_error('Overloading ' . $module->name . ' without explicit overload parameter', E_USER_WARNING); - } - $this->registeredModules[$module->name] = $module; - } - - /** - * Adds a module to the current doctype by first registering it, - * and then tacking it on to the active doctype - */ - public function addModule($module) { - $this->registerModule($module); - if (is_object($module)) $module = $module->name; - $this->userModules[] = $module; - } - - /** - * Adds a class prefix that registerModule() will use to resolve a - * string name to a concrete class - */ - public function addPrefix($prefix) { - $this->prefixes[] = $prefix; - } - - /** - * Performs processing on modules, after being called you may - * use getElement() and getElements() - * @param $config Instance of HTMLPurifier_Config - */ - public function setup($config) { - - $this->trusted = $config->get('HTML.Trusted'); - - // generate - $this->doctype = $this->doctypes->make($config); - $modules = $this->doctype->modules; - - // take out the default modules that aren't allowed - $lookup = $config->get('HTML.AllowedModules'); - $special_cases = $config->get('HTML.CoreModules'); - - if (is_array($lookup)) { - foreach ($modules as $k => $m) { - if (isset($special_cases[$m])) continue; - if (!isset($lookup[$m])) unset($modules[$k]); - } - } - - // custom modules - if ($config->get('HTML.Proprietary')) { - $modules[] = 'Proprietary'; - } - if ($config->get('HTML.SafeObject')) { - $modules[] = 'SafeObject'; - } - if ($config->get('HTML.SafeEmbed')) { - $modules[] = 'SafeEmbed'; - } - if ($config->get('HTML.Nofollow')) { - $modules[] = 'Nofollow'; - } - - // merge in custom modules - $modules = array_merge($modules, $this->userModules); - - foreach ($modules as $module) { - $this->processModule($module); - $this->modules[$module]->setup($config); - } - - foreach ($this->doctype->tidyModules as $module) { - $this->processModule($module); - $this->modules[$module]->setup($config); - } - - // prepare any injectors - foreach ($this->modules as $module) { - $n = array(); - foreach ($module->info_injector as $i => $injector) { - if (!is_object($injector)) { - $class = "HTMLPurifier_Injector_$injector"; - $injector = new $class; - } - $n[$injector->name] = $injector; - } - $module->info_injector = $n; - } - - // setup lookup table based on all valid modules - foreach ($this->modules as $module) { - foreach ($module->info as $name => $def) { - if (!isset($this->elementLookup[$name])) { - $this->elementLookup[$name] = array(); - } - $this->elementLookup[$name][] = $module->name; - } - } - - // note the different choice - $this->contentSets = new HTMLPurifier_ContentSets( - // content set assembly deals with all possible modules, - // not just ones deemed to be "safe" - $this->modules - ); - $this->attrCollections = new HTMLPurifier_AttrCollections( - $this->attrTypes, - // there is no way to directly disable a global attribute, - // but using AllowedAttributes or simply not including - // the module in your custom doctype should be sufficient - $this->modules - ); - } - - /** - * Takes a module and adds it to the active module collection, - * registering it if necessary. - */ - public function processModule($module) { - if (!isset($this->registeredModules[$module]) || is_object($module)) { - $this->registerModule($module); - } - $this->modules[$module] = $this->registeredModules[$module]; - } - - /** - * Retrieves merged element definitions. - * @return Array of HTMLPurifier_ElementDef - */ - public function getElements() { - - $elements = array(); - foreach ($this->modules as $module) { - if (!$this->trusted && !$module->safe) continue; - foreach ($module->info as $name => $v) { - if (isset($elements[$name])) continue; - $elements[$name] = $this->getElement($name); - } - } - - // remove dud elements, this happens when an element that - // appeared to be safe actually wasn't - foreach ($elements as $n => $v) { - if ($v === false) unset($elements[$n]); - } - - return $elements; - - } - - /** - * Retrieves a single merged element definition - * @param $name Name of element - * @param $trusted Boolean trusted overriding parameter: set to true - * if you want the full version of an element - * @return Merged HTMLPurifier_ElementDef - * @note You may notice that modules are getting iterated over twice (once - * in getElements() and once here). This - * is because - */ - public function getElement($name, $trusted = null) { - - if (!isset($this->elementLookup[$name])) { - return false; - } - - // setup global state variables - $def = false; - if ($trusted === null) $trusted = $this->trusted; - - // iterate through each module that has registered itself to this - // element - foreach($this->elementLookup[$name] as $module_name) { - - $module = $this->modules[$module_name]; - - // refuse to create/merge from a module that is deemed unsafe-- - // pretend the module doesn't exist--when trusted mode is not on. - if (!$trusted && !$module->safe) { - continue; - } - - // clone is used because, ideally speaking, the original - // definition should not be modified. Usually, this will - // make no difference, but for consistency's sake - $new_def = clone $module->info[$name]; - - if (!$def && $new_def->standalone) { - $def = $new_def; - } elseif ($def) { - // This will occur even if $new_def is standalone. In practice, - // this will usually result in a full replacement. - $def->mergeIn($new_def); - } else { - // :TODO: - // non-standalone definitions that don't have a standalone - // to merge into could be deferred to the end - continue; - } - - // attribute value expansions - $this->attrCollections->performInclusions($def->attr); - $this->attrCollections->expandIdentifiers($def->attr, $this->attrTypes); - - // descendants_are_inline, for ChildDef_Chameleon - if (is_string($def->content_model) && - strpos($def->content_model, 'Inline') !== false) { - if ($name != 'del' && $name != 'ins') { - // this is for you, ins/del - $def->descendants_are_inline = true; - } - } - - $this->contentSets->generateChildDef($def, $module); - } - - // This can occur if there is a blank definition, but no base to - // mix it in with - if (!$def) return false; - - // add information on required attributes - foreach ($def->attr as $attr_name => $attr_def) { - if ($attr_def->required) { - $def->required_attr[] = $attr_name; - } - } - - return $def; - - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/IDAccumulator.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/IDAccumulator.php deleted file mode 100644 index 7321529..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/IDAccumulator.php +++ /dev/null @@ -1,53 +0,0 @@ -load($config->get('Attr.IDBlacklist')); - return $id_accumulator; - } - - /** - * Add an ID to the lookup table. - * @param $id ID to be added. - * @return Bool status, true if success, false if there's a dupe - */ - public function add($id) { - if (isset($this->ids[$id])) return false; - return $this->ids[$id] = true; - } - - /** - * Load a list of IDs into the lookup table - * @param $array_of_ids Array of IDs to load - * @note This function doesn't care about duplicates - */ - public function load($array_of_ids) { - foreach ($array_of_ids as $id) { - $this->ids[$id] = true; - } - } - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Injector.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Injector.php deleted file mode 100644 index 5922f81..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Injector.php +++ /dev/null @@ -1,239 +0,0 @@ -processToken() - * documentation. - * - * @todo Allow injectors to request a re-run on their output. This - * would help if an operation is recursive. - */ -abstract class HTMLPurifier_Injector -{ - - /** - * Advisory name of injector, this is for friendly error messages - */ - public $name; - - /** - * Instance of HTMLPurifier_HTMLDefinition - */ - protected $htmlDefinition; - - /** - * Reference to CurrentNesting variable in Context. This is an array - * list of tokens that we are currently "inside" - */ - protected $currentNesting; - - /** - * Reference to InputTokens variable in Context. This is an array - * list of the input tokens that are being processed. - */ - protected $inputTokens; - - /** - * Reference to InputIndex variable in Context. This is an integer - * array index for $this->inputTokens that indicates what token - * is currently being processed. - */ - protected $inputIndex; - - /** - * Array of elements and attributes this injector creates and therefore - * need to be allowed by the definition. Takes form of - * array('element' => array('attr', 'attr2'), 'element2') - */ - public $needed = array(); - - /** - * Index of inputTokens to rewind to. - */ - protected $rewind = false; - - /** - * Rewind to a spot to re-perform processing. This is useful if you - * deleted a node, and now need to see if this change affected any - * earlier nodes. Rewinding does not affect other injectors, and can - * result in infinite loops if not used carefully. - * @warning HTML Purifier will prevent you from fast-forwarding with this - * function. - */ - public function rewind($index) { - $this->rewind = $index; - } - - /** - * Retrieves rewind, and then unsets it. - */ - public function getRewind() { - $r = $this->rewind; - $this->rewind = false; - return $r; - } - - /** - * Prepares the injector by giving it the config and context objects: - * this allows references to important variables to be made within - * the injector. This function also checks if the HTML environment - * will work with the Injector (see checkNeeded()). - * @param $config Instance of HTMLPurifier_Config - * @param $context Instance of HTMLPurifier_Context - * @return Boolean false if success, string of missing needed element/attribute if failure - */ - public function prepare($config, $context) { - $this->htmlDefinition = $config->getHTMLDefinition(); - // Even though this might fail, some unit tests ignore this and - // still test checkNeeded, so be careful. Maybe get rid of that - // dependency. - $result = $this->checkNeeded($config); - if ($result !== false) return $result; - $this->currentNesting =& $context->get('CurrentNesting'); - $this->inputTokens =& $context->get('InputTokens'); - $this->inputIndex =& $context->get('InputIndex'); - return false; - } - - /** - * This function checks if the HTML environment - * will work with the Injector: if p tags are not allowed, the - * Auto-Paragraphing injector should not be enabled. - * @param $config Instance of HTMLPurifier_Config - * @param $context Instance of HTMLPurifier_Context - * @return Boolean false if success, string of missing needed element/attribute if failure - */ - public function checkNeeded($config) { - $def = $config->getHTMLDefinition(); - foreach ($this->needed as $element => $attributes) { - if (is_int($element)) $element = $attributes; - if (!isset($def->info[$element])) return $element; - if (!is_array($attributes)) continue; - foreach ($attributes as $name) { - if (!isset($def->info[$element]->attr[$name])) return "$element.$name"; - } - } - return false; - } - - /** - * Tests if the context node allows a certain element - * @param $name Name of element to test for - * @return True if element is allowed, false if it is not - */ - public function allowsElement($name) { - if (!empty($this->currentNesting)) { - $parent_token = array_pop($this->currentNesting); - $this->currentNesting[] = $parent_token; - $parent = $this->htmlDefinition->info[$parent_token->name]; - } else { - $parent = $this->htmlDefinition->info_parent_def; - } - if (!isset($parent->child->elements[$name]) || isset($parent->excludes[$name])) { - return false; - } - // check for exclusion - for ($i = count($this->currentNesting) - 2; $i >= 0; $i--) { - $node = $this->currentNesting[$i]; - $def = $this->htmlDefinition->info[$node->name]; - if (isset($def->excludes[$name])) return false; - } - return true; - } - - /** - * Iterator function, which starts with the next token and continues until - * you reach the end of the input tokens. - * @warning Please prevent previous references from interfering with this - * functions by setting $i = null beforehand! - * @param &$i Current integer index variable for inputTokens - * @param &$current Current token variable. Do NOT use $token, as that variable is also a reference - */ - protected function forward(&$i, &$current) { - if ($i === null) $i = $this->inputIndex + 1; - else $i++; - if (!isset($this->inputTokens[$i])) return false; - $current = $this->inputTokens[$i]; - return true; - } - - /** - * Similar to _forward, but accepts a third parameter $nesting (which - * should be initialized at 0) and stops when we hit the end tag - * for the node $this->inputIndex starts in. - */ - protected function forwardUntilEndToken(&$i, &$current, &$nesting) { - $result = $this->forward($i, $current); - if (!$result) return false; - if ($nesting === null) $nesting = 0; - if ($current instanceof HTMLPurifier_Token_Start) $nesting++; - elseif ($current instanceof HTMLPurifier_Token_End) { - if ($nesting <= 0) return false; - $nesting--; - } - return true; - } - - /** - * Iterator function, starts with the previous token and continues until - * you reach the beginning of input tokens. - * @warning Please prevent previous references from interfering with this - * functions by setting $i = null beforehand! - * @param &$i Current integer index variable for inputTokens - * @param &$current Current token variable. Do NOT use $token, as that variable is also a reference - */ - protected function backward(&$i, &$current) { - if ($i === null) $i = $this->inputIndex - 1; - else $i--; - if ($i < 0) return false; - $current = $this->inputTokens[$i]; - return true; - } - - /** - * Initializes the iterator at the current position. Use in a do {} while; - * loop to force the _forward and _backward functions to start at the - * current location. - * @warning Please prevent previous references from interfering with this - * functions by setting $i = null beforehand! - * @param &$i Current integer index variable for inputTokens - * @param &$current Current token variable. Do NOT use $token, as that variable is also a reference - */ - protected function current(&$i, &$current) { - if ($i === null) $i = $this->inputIndex; - $current = $this->inputTokens[$i]; - } - - /** - * Handler that is called when a text token is processed - */ - public function handleText(&$token) {} - - /** - * Handler that is called when a start or empty token is processed - */ - public function handleElement(&$token) {} - - /** - * Handler that is called when an end token is processed - */ - public function handleEnd(&$token) { - $this->notifyEnd($token); - } - - /** - * Notifier that is called when an end token is processed - * @note This differs from handlers in that the token is read-only - * @deprecated - */ - public function notifyEnd($token) {} - - -} - -// vim: et sw=4 sts=4 diff --git a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Injector/AutoParagraph.php b/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Injector/AutoParagraph.php deleted file mode 100644 index afa7608..0000000 --- a/libraries/plugins/IDS/vendors/htmlpurifier/HTMLPurifier/Injector/AutoParagraph.php +++ /dev/null @@ -1,345 +0,0 @@ -armor['MakeWellFormed_TagClosedError'] = true; - return $par; - } - - public function handleText(&$token) { - $text = $token->data; - // Does the current parent allow

tags? - if ($this->allowsElement('p')) { - if (empty($this->currentNesting) || strpos($text, "\n\n") !== false) { - // Note that we have differing behavior when dealing with text - // in the anonymous root node, or a node inside the document. - // If the text as a double-newline, the treatment is the same; - // if it doesn't, see the next if-block if you're in the document. - - $i = $nesting = null; - if (!$this->forwardUntilEndToken($i, $current, $nesting) && $token->is_whitespace) { - // State 1.1: ... ^ (whitespace, then document end) - // ---- - // This is a degenerate case - } else { - if (!$token->is_whitespace || $this->_isInline($current)) { - // State 1.2: PAR1 - // ---- - - // State 1.3: PAR1\n\nPAR2 - // ------------ - - // State 1.4:

PAR1\n\nPAR2 (see State 2) - // ------------ - $token = array($this->_pStart()); - $this->_splitText($text, $token); - } else { - // State 1.5: \n
- // -- - } - } - } else { - // State 2:
PAR1... (similar to 1.4) - // ---- - - // We're in an element that allows paragraph tags, but we're not - // sure if we're going to need them. - if ($this->_pLookAhead()) { - // State 2.1:
PAR1PAR1\n\nPAR2 - // ---- - // Note: This will always be the first child, since any - // previous inline element would have triggered this very - // same routine, and found the double newline. One possible - // exception would be a comment. - $token = array($this->_pStart(), $token); - } else { - // State 2.2.1:
PAR1
- // ---- - - // State 2.2.2:
PAR1PAR1
- // ---- - } - } - // Is the current parent a

tag? - } elseif ( - !empty($this->currentNesting) && - $this->currentNesting[count($this->currentNesting)-1]->name == 'p' - ) { - // State 3.1: ...

PAR1 - // ---- - - // State 3.2: ...

PAR1\n\nPAR2 - // ------------ - $token = array(); - $this->_splitText($text, $token); - // Abort! - } else { - // State 4.1: ...PAR1 - // ---- - - // State 4.2: ...PAR1\n\nPAR2 - // ------------ - } - } - - public function handleElement(&$token) { - // We don't have to check if we're already in a

tag for block - // tokens, because the tag would have been autoclosed by MakeWellFormed. - if ($this->allowsElement('p')) { - if (!empty($this->currentNesting)) { - if ($this->_isInline($token)) { - // State 1:

... - // --- - - // Check if this token is adjacent to the parent token - // (seek backwards until token isn't whitespace) - $i = null; - $this->backward($i, $prev); - - if (!$prev instanceof HTMLPurifier_Token_Start) { - // Token wasn't adjacent - - if ( - $prev instanceof HTMLPurifier_Token_Text && - substr($prev->data, -2) === "\n\n" - ) { - // State 1.1.4:

PAR1

\n\n - // --- - - // Quite frankly, this should be handled by splitText - $token = array($this->_pStart(), $token); - } else { - // State 1.1.1:

PAR1

- // --- - - // State 1.1.2:

- // --- - - // State 1.1.3:
PAR - // --- - } - - } else { - // State 1.2.1:
- // --- - - // Lookahead to see if

is needed. - if ($this->_pLookAhead()) { - // State 1.3.1:

PAR1\n\nPAR2 - // --- - $token = array($this->_pStart(), $token); - } else { - // State 1.3.2:
PAR1
- // --- - - // State 1.3.3:
PAR1
\n\n
- // --- - } - } - } else { - // State 2.3: ...
- // ----- - } - } else { - if ($this->_isInline($token)) { - // State 3.1: - // --- - // This is where the {p} tag is inserted, not reflected in - // inputTokens yet, however. - $token = array($this->_pStart(), $token); - } else { - // State 3.2:
- // ----- - } - - $i = null; - if ($this->backward($i, $prev)) { - if ( - !$prev instanceof HTMLPurifier_Token_Text - ) { - // State 3.1.1: ...

{p} - // --- - - // State 3.2.1: ...

- // ----- - - if (!is_array($token)) $token = array($token); - array_unshift($token, new HTMLPurifier_Token_Text("\n\n")); - } else { - // State 3.1.2: ...

\n\n{p} - // --- - - // State 3.2.2: ...

\n\n
- // ----- - - // Note: PAR cannot occur because PAR would have been - // wrapped in

tags. - } - } - } - } else { - // State 2.2: