The permanent database allows storing information that may be used across ZAP sessions. For example, it is used by the OAST add-on to persist BOAST payloads that can be polled in future ZAP sessions to list out-of-band interactions made to the service while ZAP wasn't running.
The following Active scan rules have been promoted to Release status:
The following libraries were updated:
| Before | After |
|---|---|
| Base - Proper handling | Base - Proper handling |
| A, Link, Area - ‘href’ attribute | A, Link, Area - ‘href’ attribute |
| Frame, IFrame, Script, Img - ‘src’ attribute | Applet, Audio, Embed, Frame, IFrame, Input, Script, Img, Video - ‘src’ attribute |
| Meta - ‘http-equiv’ for ’location’ and ‘refresh’ | Meta - ‘http-equiv’ for ’location’, ‘refresh’ and ‘Content-Security-Policy’, ’name’ for ‘msapplication-config’ |
| Applet - ‘codebase’, ‘archive’ attributes | |
| Img - ’longdesc’, ’lowsrc’, ‘dynsrc’, ‘srcset’ attributes | |
| Isindex - ‘action’ attribute | |
| Object - ‘codebase’, ‘data’ attributes | |
| Svg - ‘href’ and ‘xlink:href’ attributes of ‘image’ and ‘script’ elements | |
| Table - ‘background’ attribute | |
| Video - ‘poster’ attribute | |
| Form - proper handling of Forms with both GET and POST method. The fields values are generated validly, including HTML 5.0 input types. | Form - proper handling of Forms with both GET and POST method. The fields values are generated validly, including HTML 5.0 input types ‘form’, ‘formaction’, ‘formmethod’ attributes of buttons are also respected. |
| Comments - Valid tags found in comments are also analyzed, if specified in the Options Spider screen | Comments - Valid tags found in comments are also analyzed, if specified in the Options Spider screen |
| Import - ‘implementation’ attribute | |
| Inline string - ‘p’, ’title’, ’li’, ‘h1’, ‘h2’, ‘h3’, ‘h4’, ‘h5’, ‘h6’, and ‘blockquote’ tags | |
| SVG image files are parsed to identify HREF attributes and extract/resolve any contained links. |
The Requester tab was also updated to provide the same functionalities that the dialogues provide.
instead of:{"High":0,"Low":3,"Medium":0,"Informational":2,"False Positive":1}
{"High":0,"Low":3,"Medium":1,"Informational":2}
org.parosproxy.paros.common.FileXMLorg.parosproxy.paros.core.proxy.SenderThreadorg.parosproxy.paros.core.proxy.SenderThreadListenerorg.parosproxy.paros.core.proxy.StreamForwarderorg.parosproxy.paros.core.scanner.AbstractDefaultFilePluginorg.parosproxy.paros.extension.history.BrowserDialogorg.parosproxy.paros.extension.history.PopupMenuResendorg.parosproxy.paros.extension.history.PopupMenuResendSitesorg.parosproxy.paros.model.HistoryListorg.parosproxy.paros.model.HttpMessageListorg.parosproxy.paros.network.ByteVectororg.parosproxy.paros.network.ProxyExcludedDomainMatcherorg.zaproxy.zap.extension.brk.BreakpointMessageHandlerorg.zaproxy.zap.extension.brk.ExtensionBreak$DialogTypeorg.zaproxy.zap.extension.history.PopupMenuShowInHistoryorg.zaproxy.zap.extension.stdmenus.PopupMenuSpiderContextorg.zaproxy.zap.extension.stdmenus.PopupMenuSpiderContextAsUserorg.zaproxy.zap.extension.stdmenus.PopupMenuSpiderDialogorg.zaproxy.zap.extension.stdmenus.PopupMenuSpiderScopeorg.zaproxy.zap.extension.stdmenus.PopupMenuSpiderSiteorg.zaproxy.zap.extension.stdmenus.PopupMenuSpiderSubtreeorg.zaproxy.zap.extension.stdmenus.PopupMenuSpiderURLorg.zaproxy.zap.extension.stdmenus.PopupMenuSpiderURLAsUserorg.zaproxy.zap.httputils.RequestUtilsorg.zaproxy.zap.view.HistoryReferenceTableModelorg.zaproxy.zap.view.MessagePanelsPositionControllerorg.zaproxy.zap.view.PopupMenuHistoryReferenceorg.zaproxy.zap.view.PopupMenuHttpMessageorg.zaproxy.zap.view.PopupMenuSiteNodeorg.parosproxy.paros.CommandLine#getConfigs()org.parosproxy.paros.control.Control#createAndOpenUntitledDb()org.parosproxy.paros.core.proxy.ProxyParam#isModifyAcceptEncodingHeader()org.parosproxy.paros.core.proxy.ProxyParam#setModifyAcceptEncodingHeader(boolean)org.parosproxy.paros.core.scanner.Alert#getAlert()org.parosproxy.paros.core.scanner.Alert#getReliability()org.parosproxy.paros.core.scanner.Alert#setAlert(java.lang.String)org.parosproxy.paros.core.scanner.Alert#setDetail(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,org.parosproxy.paros.network.HttpMessage)org.parosproxy.paros.core.scanner.Alert#setRiskReliability(int,int)org.parosproxy.paros.core.scanner.HostProcess#setPluginRequestCount(int,int)org.parosproxy.paros.core.scanner.HostProcess#setTestCurrentCount(org.parosproxy.paros.core.scanner.Plugin,int)org.parosproxy.paros.core.scanner.PluginFactory#loadedPlugin(java.lang.String)org.parosproxy.paros.core.scanner.PluginFactory#unloadedPlugin(java.lang.String)org.parosproxy.paros.core.scanner.VariantAbstractQuery#setParams(int,java.util.Map)org.parosproxy.paros.db.paros.ParosTableHistory#getHistoryList(long)org.parosproxy.paros.db.paros.ParosTableHistory#getHistoryList(long,int)org.parosproxy.paros.db.paros.ParosTableHistory#setHistoryTypeAsTemporary(int)org.parosproxy.paros.db.paros.ParosTableHistory#unsetHistoryTypeAsTemporary(int)org.parosproxy.paros.db.RecordAlert#getReliability()org.parosproxy.paros.db.RecordAlert#setReliability(int)org.parosproxy.paros.extension.ExtensionPopupMenuItem#isSuperMenu()org.parosproxy.paros.extension.history.ExtensionHistory#clearLogPanelDisplayQueue()org.parosproxy.paros.extension.history.LogPanel#clearDisplayQueue()org.parosproxy.paros.extension.history.LogPanel#LogPanel()org.parosproxy.paros.extension.history.LogPanel#setDisplayPanel(org.zaproxy.zap.extension.httppanel.HttpPanel,org.zaproxy.zap.extension.httppanel.HttpPanel)org.parosproxy.paros.extension.option.OptionsParamView#getShowMainToolbar()org.parosproxy.paros.extension.option.OptionsParamView#setShowMainToolbar(int)org.parosproxy.paros.model.Session#addGlobalExcludeURLRegexs(java.lang.String)org.parosproxy.paros.model.Session#setGlobalExcludeURLRegexs(java.util.List)org.parosproxy.paros.network.ConnectionParam#getProxyChainSkipName()org.parosproxy.paros.network.ConnectionParam#setProxyChainSkipName(java.lang.String)org.parosproxy.paros.view.AbstractFrame#loadIconImages()org.parosproxy.paros.view.MainFrame#changeDisplayOption(int)org.parosproxy.paros.view.MainFrame#MainFrame(int)org.parosproxy.paros.view.View#getDisplayOption()org.parosproxy.paros.view.View#getMessagePanelsPositionController()org.parosproxy.paros.view.View#setDisplayOption(int)org.parosproxy.paros.view.WorkbenchPanel#changeDisplayOption(int)org.parosproxy.paros.view.WorkbenchPanel#getTabbedOldSelect()org.parosproxy.paros.view.WorkbenchPanel#getTabbedOldStatus()org.parosproxy.paros.view.WorkbenchPanel#getTabbedOldWork()org.parosproxy.paros.view.WorkbenchPanel#removeSplitPaneWork()org.parosproxy.paros.view.WorkbenchPanel#setTabbedOldSelect(org.zaproxy.zap.view.TabbedPanel2)org.parosproxy.paros.view.WorkbenchPanel#setTabbedOldStatus(org.zaproxy.zap.view.TabbedPanel2)org.parosproxy.paros.view.WorkbenchPanel#setTabbedOldWork(org.zaproxy.zap.view.TabbedPanel2)org.parosproxy.paros.view.WorkbenchPanel#splitPaneWorkWithTabbedPanel(org.parosproxy.paros.view.TabbedPanel,int)org.parosproxy.paros.view.WorkbenchPanel#WorkbenchPanel(int)org.zaproxy.zap.control.AddOn#AddOn(java.io.File)org.zaproxy.zap.control.AddOn#AddOn(java.lang.String)org.zaproxy.zap.control.AddOn#canLoad()org.zaproxy.zap.control.AddOn#isAddOn(java.io.File)org.zaproxy.zap.control.AddOn#isAddOn(java.lang.String)org.zaproxy.zap.control.ControlOverrides#getConfigs()org.zaproxy.zap.control.ControlOverrides#setConfigs(java.util.Hashtable)org.zaproxy.zap.db.sql.SqlTableHistory#setHistoryTypeAsTemporary(int)org.zaproxy.zap.db.sql.SqlTableHistory#unsetHistoryTypeAsTemporary(int)org.zaproxy.zap.extension.api.DotNetAPIGenerator#generateCSharpFiles(java.util.List)org.zaproxy.zap.extension.api.GoAPIGenerator#generateGoFiles(java.util.List)org.zaproxy.zap.extension.api.JavaAPIGenerator#generateJavaFiles(java.util.List)org.zaproxy.zap.extension.api.NodeJSAPIGenerator#generateNodeJSFiles(java.util.List)org.zaproxy.zap.extension.api.PhpAPIGenerator#generatePhpFiles(java.util.List)org.zaproxy.zap.extension.api.PythonAPIGenerator#generatePythonFiles(java.util.List)org.zaproxy.zap.extension.api.WikiAPIGenerator#generateWikiFiles(java.util.List)org.zaproxy.zap.extension.ascan.ActiveScan#updatePluginRequestCounts()org.zaproxy.zap.extension.autoupdate.AddOnsTableModel#AddOnsTableModel(java.util.Comparator,org.zaproxy.zap.control.AddOnCollection,int)org.zaproxy.zap.extension.brk.ExtensionBreak#canAddBreakpoint()org.zaproxy.zap.extension.brk.ExtensionBreak#canEditBreakpoint()org.zaproxy.zap.extension.brk.ExtensionBreak#canRemoveBreakpoint()org.zaproxy.zap.extension.brk.ExtensionBreak#dialogClosed()org.zaproxy.zap.extension.brk.ExtensionBreak#dialogShown(org.zaproxy.zap.extension.brk.ExtensionBreak$DialogType)org.zaproxy.zap.extension.brk.ExtensionBreak#getBreakPanel()org.zaproxy.zap.extension.ExtensionPopupMenu#prepareShow()org.zaproxy.zap.extension.history.PopupMenuPurgeSites#purge(org.parosproxy.paros.model.SiteMap,org.parosproxy.paros.model.SiteNode)org.zaproxy.zap.extension.pscan.ExtensionPassiveScan#addPassiveScanner(java.lang.String)org.zaproxy.zap.extension.pscan.PassiveScanThread#PassiveScanThread( org.zaproxy.zap.extension.pscan.PassiveScannerList, org.parosproxy.paros.extension.history.ExtensionHistory, org.zaproxy.zap.extension.alert.ExtensionAlert)org.zaproxy.zap.extension.search.SearchPanel#SearchPanel()org.zaproxy.zap.extension.search.SearchPanel#setDisplayPanel(org.zaproxy.zap.extension.httppanel.HttpPanelRequest,org.zaproxy.zap.extension.httppanel.HttpPanelResponse)org.zaproxy.zap.extension.spider.SpiderScan#SpiderScan( org.zaproxy.zap.extension.spider.ExtensionSpider, org.zaproxy.zap.spider.SpiderParam, org.zaproxy.zap.model.Target, org.apache.commons.httpclient.URI, org.zaproxy.zap.users.User, int)org.zaproxy.zap.extension.spider.SpiderThread#SpiderThread( org.zaproxy.zap.extension.spider.ExtensionSpider, org.zaproxy.zap.spider.SpiderParam, java.lang.String, org.zaproxy.zap.model.ScanListenner)org.zaproxy.zap.spider.Spider#Spider(org.zaproxy.zap.extension.spider.ExtensionSpider,org.zaproxy.zap.spider.SpiderParam,org.parosproxy.paros.network.ConnectionParam,org.parosproxy.paros.model.Model,org.zaproxy.zap.model.Context)org.zaproxy.zap.spider.SpiderParam#getScope()org.zaproxy.zap.spider.SpiderParam#getScopeText()org.zaproxy.zap.spider.SpiderParam#setScopeString(java.lang.String)org.zaproxy.zap.view.ContextExcludePanel#getPanelName(org.zaproxy.zap.model.Context)org.zaproxy.zap.view.ContextIncludePanel#getPanelName(org.zaproxy.zap.model.Context)org.zaproxy.zap.view.MainToolbarPanel#setDisplayOption(int)org.zaproxy.zap.view.ScanPanel2#ScanPanel2(java.lang.String, javax.swing.ImageIcon, org.zaproxy.zap.model.ScanController, org.parosproxy.paros.common.AbstractParam)org.zaproxy.zap.view.TabbedPanel2#clone(org.zaproxy.zap.view.TabbedPanel2)org.parosproxy.paros.Constant#FILE_CONFIG_DEFAULTorg.parosproxy.paros.Constant#VULNS_BASEorg.parosproxy.paros.core.scanner.Alert#MSG_RELIABILITYorg.parosproxy.paros.core.scanner.Alert#SUSPICIOUSorg.parosproxy.paros.core.scanner.Alert#WARNINGorg.parosproxy.paros.model.HistoryReference#TYPE_RESERVED_11org.parosproxy.paros.view.View#DISPLAY_OPTION_BOTTOM_FULLorg.parosproxy.paros.view.View#DISPLAY_OPTION_LEFT_FULLorg.parosproxy.paros.view.View#DISPLAY_OPTION_TOP_FULLorg.zaproxy.zap.extension.ascan.ActiveScanPanel#PANEL_NAMEorg.zaproxy.zap.extension.search.SearchPanel#PANEL_NAME| Introduction | the introduction to ZAP | |
| Releases | the full set of releases | |
| Credits | the people and groups who have made this release possible |