diff --git a/zap/src/main/dist/lang/Messages_ko_KR.properties b/zap/src/main/dist/lang/Messages_ko_KR.properties index a00f8bf935c..be2813cfa8c 100644 --- a/zap/src/main/dist/lang/Messages_ko_KR.properties +++ b/zap/src/main/dist/lang/Messages_ko_KR.properties @@ -97,7 +97,7 @@ alert.label.ref = \ucc38\uc870\: alert.label.reliability = \uc2e0\ub8b0\ub3c4\: alert.label.risk = \uc704\ud5d8\: alert.label.solution = \ud574\uacb0\: -alert.label.source = Source\: +alert.label.source = \ucd9c\ucc98\: alert.label.tags = Alert Tags\: alert.label.url = URL\: alert.label.wascid = WASC ID\: @@ -192,36 +192,36 @@ api.home.proxypac =
To use ZAP effectively it is api.home.topmsg =
ZAP is an easy to use integrated penetration testing tool for finding vulnerabilities in web applications.
Please be aware that you should only attack applications that you have been specifically been given permission to test.
api.html.action = Action\: api.html.actions = Actions -api.html.component = Component\: -api.html.components = Components +api.html.component = \uad6c\uc131 \uc694\uc18c\: +api.html.components = \uad6c\uc131 \uc694\uc18c api.html.deprecated.endpoint = Deprecated API Endpoint. Its use is discouraged, it will be removed in a future version. api.html.formMethod = Form Method -api.html.format = Output Format +api.html.format = \ucd9c\ub825 \ud615\uc2dd api.html.other = \uae30\ud0c0\: api.html.others = \uae30\ud0c0 api.html.pconn = Persistent Connection\: api.html.pconns = Persistent Connections -api.html.shortcuts = Shortcuts +api.html.shortcuts = \ubc14\ub85c \uac00\uae30 api.html.title = ZAP API UI -api.html.view = View\: -api.html.views = Views +api.html.view = \ubcf4\uae30\: +api.html.views = \ubcf4\uae30 api.menu.tools.url = Browse API api.name = API \ud655\uc7a5 api.options.addr.add.button.confirm = \ucd94\uac00 api.options.addr.add.title = Add Permitted Address api.options.addr.dialog.remove.button.cancel = \ucde8\uc18c api.options.addr.dialog.remove.button.confirm = \uc81c\uac70 -api.options.addr.dialog.remove.checkbox.label = Do not show this message again. -api.options.addr.dialog.remove.text = Are you sure you want to remove the selected Address? +api.options.addr.dialog.remove.checkbox.label = \uc774 \uba54\uc138\uc9c0\ub97c \ub2e4\uc2dc \ud45c\uc2dc\ud558\uc9c0 \uc54a\uc74c +api.options.addr.dialog.remove.text = \uc120\ud0dd\ub41c \uc8fc\uc18c\ub97c \uc81c\uac70\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? api.options.addr.dialog.remove.title = Remove Permitted Address -api.options.addr.field.label.domain = Address\: -api.options.addr.field.label.enabled = Enabled\: -api.options.addr.field.label.regex = Regex\: -api.options.addr.modify.button.confirm = Modify +api.options.addr.field.label.domain = \uc8fc\uc18c\: +api.options.addr.field.label.enabled = \ud65c\uc131\ud654\: +api.options.addr.field.label.regex = \uc815\uaddc\uc2dd\: +api.options.addr.modify.button.confirm = \uc218\uc815 api.options.addr.modify.title = Modify Permitted Address -api.options.addr.table.header.enabled = Enabled -api.options.addr.table.header.regex = Regex -api.options.addr.table.header.value = Address +api.options.addr.table.header.enabled = \ud65c\uc131\ub428 +api.options.addr.table.header.regex = \uc815\uaddc\uc2dd +api.options.addr.table.header.value = \uc8fc\uc18c api.options.addr.title = Addresses permitted to use the API api.options.addr.warning.invalid.regex.text = The regular expression is invalid. api.options.addr.warning.invalid.regex.title = Permitted Address Regex Invalid @@ -230,7 +230,7 @@ api.options.button.generateKey = Generate Random Key api.options.button.xferDirectory = Select Directory api.options.disableKey = Disable the API key api.options.enableJSONP = Enable JSONP -api.options.enabled = Enabled +api.options.enabled = \ud65c\uc131\ub428 api.options.fileTransfer = File Transfer Enabled api.options.incErrors = Report error details via API api.options.label.apiKey = API \ud0a4\: @@ -435,13 +435,13 @@ ascan.custom.button.pt.rem = \uc81c\uac70 ascan.custom.button.reset = \ucd08\uae30\ud654 ascan.custom.button.scan = Start Scan ascan.custom.label.adv = Show Advanced Options -ascan.custom.label.context = Context\: +ascan.custom.label.context = \ucee8\ud14d\uc2a4\ud2b8\: ascan.custom.label.disableiv = Disable Non-custom Input Vectors ascan.custom.label.inscope = Just In Scope\: ascan.custom.label.policy = Policy\: ascan.custom.label.recurse = Recurse\: ascan.custom.label.start = Starting Point\: -ascan.custom.label.user = User\: +ascan.custom.label.user = \uc0ac\uc6a9\uc790\: ascan.custom.label.vectors = Vectors\: ascan.custom.nostart.error = \uc2dc\uc791 \uc9c0\uc810\uc744 \uc120\ud0dd\ud574\uc57c \ud569\ub2c8\ub2e4 ascan.custom.notSafe.error = Active scans are not allowed in 'Safe' mode. @@ -452,16 +452,16 @@ ascan.custom.tab.custom = Custom Vectors ascan.custom.tab.filter = \ud544\ud130 ascan.custom.tab.input = Input Vectors ascan.custom.tab.policy = Policy -ascan.custom.tab.scope = Scope -ascan.custom.tab.sequence = Sequence -ascan.custom.tab.tech = Technology -ascan.custom.tab.tech.node = Technology +ascan.custom.tab.scope = \ubc94\uc704 +ascan.custom.tab.sequence = \uc2dc\ud000\uc2a4 +ascan.custom.tab.tech = \uae30\uc220 +ascan.custom.tab.tech.node = \uae30\uc220 ascan.custom.targetNotInScope.error = The following target is not allowed in ''Protected'' mode\:\n{0} ascan.custom.title = Active Scan ascan.custom.tooltip.policy = Use the Policy tab to change the policy in 'advanced' mode ascan.custom.warn.disabled = Input vectors disabled via the Custom Vectors tab ascan.desc = Active scanner, heavily based on the original Paros active scanner, but with additional tests added -ascan.filter.table.header.reason = Reason +ascan.filter.table.header.reason = \uc774\uc720 ascan.filter.table.header.url = URL\t ascan.name = Active Scan Extension ascan.options.anticsrf.label = Handle anti-CSRF tokens. @@ -471,14 +471,14 @@ ascan.options.attackPrompt.label = In Attack Mode prompt to rescan nodes when sc ascan.options.attackRescan.label = In Attack Mode always rescan nodes when scope changed. ascan.options.delayInMs.deprecated = Note\: The "Delay When Scanning" has been deprecated. See help for more details. ascan.options.delayInMs.label = Delay When Scanning (In Milliseconds)\: -ascan.options.go.button = Go +ascan.options.go.button = \uc2e4\ud589 ascan.options.level.default = Default -ascan.options.level.high = High +ascan.options.level.high = \ub192\uc74c ascan.options.level.high.label = (Fewer potential issues flagged) ascan.options.level.label = Default Alert Threshold\: -ascan.options.level.low = Low +ascan.options.level.low = \ub0ae\uc74c ascan.options.level.low.label = (More potential issues flagged) -ascan.options.level.medium = Medium +ascan.options.level.medium = \uc911\uac04 ascan.options.level.medium.label = (Default threshold) ascan.options.level.off = Off ascan.options.level.off.label = (All rules turned off) @@ -494,8 +494,8 @@ ascan.options.numThreads.label = Concurrent Scanning Threads per Host\: ascan.options.pluginHeader.label = Inject plugin ID in header for all active scan requests. ascan.options.policy.ascan.label = Default Active Scan Policy\: ascan.options.policy.attack.label = Attack Mode Scan Policy\: -ascan.options.rules.label = Rules -ascan.options.strength.default = Default +ascan.options.rules.label = \uaddc\uce59 +ascan.options.strength.default = \uae30\ubcf8\uac12 ascan.options.strength.high = \ub192\uc74c ascan.options.strength.high.label = (More attacks) ascan.options.strength.insane = \uc544\uc8fc \ub192\uc74c @@ -505,7 +505,7 @@ ascan.options.strength.low = \ub0ae\uc74c ascan.options.strength.low.label = (Fewer attacks) ascan.options.strength.medium = \uc911\uac04 ascan.options.strength.medium.label = (Default attacks) -ascan.options.strength.off = Off +ascan.options.strength.off = \uaebc\uc9d0 ascan.options.strengthTo.label = Strength To ascan.options.thresholdTo.label = Threshold To ascan.options.title = Active Scan @@ -513,44 +513,44 @@ ascan.panel.mnemonic = a ascan.panel.tab.filteredMessages = Filtered Messages\t ascan.panel.tab.scannedMessages = Sent Messages ascan.panel.title = Active Scan -ascan.policy.button.disableall = Disable All -ascan.policy.button.enableall = Enable All +ascan.policy.button.disableall = \ubaa8\ub450 \uc0ac\uc6a9 \uc548 \ud568 +ascan.policy.button.enableall = \ubaa8\ub450 \uc0ac\uc6a9 ascan.policy.button.load = Load Policy ascan.policy.button.save = Save Policy ascan.policy.button.saveas = Save Policy As... ascan.policy.dialog.footer = Thresholds and strengths can be changed by clicking on them ascan.policy.dialog.title = Scan Policy -ascan.policy.level.default = Default -ascan.policy.level.high = High +ascan.policy.level.default = \uae30\ubcf8\uac12 +ascan.policy.level.high = \ub192\uc74c ascan.policy.level.insane = \uc544\uc8fc \ub192\uc74c -ascan.policy.level.low = Low -ascan.policy.level.medium = Medium -ascan.policy.level.off = OFF +ascan.policy.level.low = \ub0ae\uc74c +ascan.policy.level.medium = \uc911\uac04 +ascan.policy.level.off = \ub044\uae30 ascan.policy.load.error = Failed to load policy file, see log for detail ascan.policy.name.default = Default Policy ascan.policy.name.label = Policy\: ascan.policy.namedialog.name.label = New Policy Name\: ascan.policy.namedialog.title = Save Policy As ascan.policy.save.error = Failed to save policy file, see log for detail -ascan.policy.table.category = Category -ascan.policy.table.enabled = Enabled -ascan.policy.table.status = Status -ascan.policy.table.status.all = All +ascan.policy.table.category = \uce74\ud14c\uace0\ub9ac +ascan.policy.table.enabled = \ud65c\uc131\ub428 +ascan.policy.table.status = \uc0c1\ud0dc +ascan.policy.table.status.all = \uc804\uccb4 ascan.policy.table.strength = Strength ascan.policy.table.testname = Test Name -ascan.policy.table.threshold = Threshold +ascan.policy.table.threshold = \uc784\uacc4\uac12 ascan.policy.title = Scan Policy ascan.policy.unfulfilled.dependencies = The scan rule cannot be enabled because of unfulfilled dependencies. ascan.policy.warn.badname = The Policy name must not contain any of the characters\: {0} ascan.policy.warn.exists = A policy with this name already exists ascan.policy.warn.noname = You must supply a policy name ascan.policymgr.button.add = \ucd94\uac00 -ascan.policymgr.button.export = Export -ascan.policymgr.button.import = Import -ascan.policymgr.button.modify = Modify +ascan.policymgr.button.export = \ub0b4\ubcf4\ub0b4\uae30 +ascan.policymgr.button.import = \uac00\uc838\uc624\uae30 +ascan.policymgr.button.modify = \uc218\uc815 ascan.policymgr.button.remove = \uc81c\uac70 ascan.policymgr.default.name = Default Policy -ascan.policymgr.table.policy = Policy Name +ascan.policymgr.table.policy = \uc815\ucc45 \uc774\ub984 ascan.policymgr.title = Scan Policy Manager ascan.policymgr.warn.delete = Are you sure you want to delete this Policy? ascan.progress.chart.1xx = 1xx @@ -578,15 +578,15 @@ ascan.progress.label.skipped.reason.nonodes = no nodes to scan ascan.progress.label.skipped.reason.techs = scan rule does not target selected technologies ascan.progress.label.skipped.reason.user = by user action ascan.progress.label.skippedWithReason = Skipped, {0}. -ascan.progress.label.totals = Totals +ascan.progress.label.totals = \ud569\uacc4 ascan.progress.tab.chart = Response Chart -ascan.progress.tab.progress = Progress +ascan.progress.tab.progress = \uc9c4\ud589 \uc0c1\ud0dc ascan.progress.table.alerts = \uacbd\uace0 ascan.progress.table.analyser = Analyser ascan.progress.table.name = Plugin -ascan.progress.table.progress = Progress +ascan.progress.table.progress = \uc9c4\ud589 \uc0c1\ud0dc ascan.progress.table.reqs = Reqs -ascan.progress.table.status = Status +ascan.progress.table.status = \uc0c1\ud0dc ascan.progress.table.time = Elapsed ascan.progress.title = {0} Scan Progress ascan.scope.popup = Active Scan all in Scope @@ -606,7 +606,7 @@ ascan.toolbar.button.progress = Show scan progress details ascan.toolbar.button.stop = Stop Active Scan ascan.toolbar.button.unpause = Resume Active Scan ascan.toolbar.confirm.clear = Are you sure you want to clear all completed scans? -ascan.toolbar.newalerts.label = New Alerts\: +ascan.toolbar.newalerts.label = \uc0c8 \uacbd\uace0\: ascan.toolbar.progress.label = \uc9c4\ud589\: ascan.toolbar.progress.select = --Select Scan-- ascan.toolbar.requests.label = Num Requests\: @@ -636,15 +636,15 @@ authentication.api.view.getLoggedOutIndicator.param.contextId= authentication.api.view.getSupportedAuthenticationMethods = Gets the name of the authentication methods. authentication.dialog.confirmChange.label = Changing the Authentication Method will reset the Users' credentials defined for this Context. Are you sure? authentication.dialog.confirmChange.title = Change Authentication Method -authentication.method.all.credentials.totp.ui.field.algorithm = Algorithm\: +authentication.method.all.credentials.totp.ui.field.algorithm = \uc54c\uace0\ub9ac\uc998\: authentication.method.all.credentials.totp.ui.field.digits = Digits\: -authentication.method.all.credentials.totp.ui.field.period = Period\: +authentication.method.all.credentials.totp.ui.field.period = \uae30\uac04\: authentication.method.all.credentials.totp.ui.field.secret = Secret\: -authentication.method.all.credentials.totp.ui.tab.creds = Credentials +authentication.method.all.credentials.totp.ui.tab.creds = \uc790\uaca9 \uc99d\uba85 authentication.method.all.credentials.totp.ui.tab.totp = TOTP authentication.method.fb.credentials.dialog.error.user.text = The username for the current user has to be configured. -authentication.method.fb.credentials.field.label.pass = Password\: -authentication.method.fb.credentials.field.label.user = Username\: +authentication.method.fb.credentials.field.label.pass = \ube44\ubc00\ubc88\ud638\: +authentication.method.fb.credentials.field.label.user = \uc544\uc774\ub514\: authentication.method.fb.dialog.error.nofields.text = The username and password form field names have to be configured for this authentication method. authentication.method.fb.dialog.error.title = Configuration Error authentication.method.fb.name = Form-based Authentication @@ -676,12 +676,12 @@ authentication.method.script.dialog.error.text.required = You have not configure authentication.method.script.dialog.error.title = Script Loading Error authentication.method.script.dialog.loggedInOutIndicatorsInScript.toolTip = Defined in the Authentication script. authentication.method.script.field.label.notLoaded =No script has been loaded yet. Select a Script in the box above and click the 'Load' button.
-authentication.method.script.field.label.scriptName = Script\: -authentication.method.script.load.button = Load +authentication.method.script.field.label.scriptName = \uc2a4\ud06c\ub9bd\ud2b8\: +authentication.method.script.load.button = \ubd88\ub7ec\uc624\uae30 authentication.method.script.load.errorScriptNotFound = Failed to find context''s Authentication script\:\n{0} authentication.method.script.loaded = {0} (loaded) authentication.method.script.name = Script-based Authentication -authentication.method.script.type = Authentication +authentication.method.script.type = \uc778\uc99d authentication.method.script.type.desc = Authentication scripts run when you an authentication is needed.\n\nThe script must be properly configured in the Session Properties -> Authentication panel with a 'Script-based Authentication Method'\n\n authentication.name = Authentication Extension authentication.output.failure = Authentication failure\: {0} @@ -701,16 +701,16 @@ authentication.panel.label.polldata = Poll Request POST Data (if any)\: authentication.panel.label.pollheaders = Additional Poll Request Headers\: authentication.panel.label.pollurl = URL to Poll for Verification\: authentication.panel.label.strategy = Verification Strategy\: -authentication.panel.label.strategy.auto_detect = Auto-Detect +authentication.panel.label.strategy.auto_detect = \uc790\ub3d9 \uac10\uc9c0 authentication.panel.label.strategy.each_req = Check every Request authentication.panel.label.strategy.each_req_resp = Check every Request or Response authentication.panel.label.strategy.each_resp = Check every Response authentication.panel.label.strategy.poll_url = Poll the Specified URL authentication.panel.label.typeSelect = Currently selected Authentication method for the Context\: authentication.panel.label.units.requests = Requests -authentication.panel.label.units.seconds = Seconds +authentication.panel.label.units.seconds = \ucd08 authentication.panel.label.verifTitle = Configure Authentication Verification -authentication.panel.title = Authentication +authentication.panel.title = \uc778\uc99d authentication.popup.indicator.loggedIn = {0} \: Authentication Logged-in indicator authentication.popup.indicator.loggedOut = {0} \: Authentication Logged-out indicator @@ -733,7 +733,7 @@ authorization.detection.basic.field.statusCode = HTTP Status Code\: authorization.detection.basic.name = Basic Authorization Detection authorization.name = Authorization Extension authorization.panel.label.description =This panel allows you to configure how authorized/unauthorized requests are handled by your web application.
-authorization.panel.title = Authorization +authorization.panel.title = \uad8c\ud55c \ubd80\uc5ec autoupdate.api.action.downloadLatestRelease = Downloads the latest release, if any autoupdate.api.action.installAddon = Installs or updates the specified add-on, returning when complete (i.e. not asynchronously) @@ -764,7 +764,7 @@ autoupdate.api.view.isLatestVersion = Returns 'true' if ZAP is on the latest ver autoupdate.api.view.latestVersionNumber = Returns the latest version number autoupdate.api.view.localAddons = Returns a list with all local add-ons, installed or not. autoupdate.api.view.marketplaceAddons = Return a list of all of the add-ons on the ZAP Marketplace (this information is read once and then cached) -autoupdate.api.view.newAddons = Return a list of any add-ons that have been added to the Marketplace since the last check for updates +autoupdate.api.view.newAddons = \ub9c8\uc9c0\ub9c9 \uc5c5\ub370\uc774\ud2b8 \ud655\uc778 \uc774\ud6c4 \ub9c8\ucf13\ud50c\ub808\uc774\uc2a4\uc5d0 \ucd94\uac00\ub41c \ubaa8\ub4e0 \uc560\ub4dc\uc628 \ubaa9\ub85d\uc744 \ubc18\ud658\ud569\ub2c8\ub2e4. autoupdate.api.view.optionAddonDirectories= autoupdate.api.view.optionCheckAddonUpdates= autoupdate.api.view.optionCheckOnStart= @@ -778,81 +778,81 @@ autoupdate.api.view.optionInstallScannerRules= autoupdate.api.view.optionReportAlphaAddons= autoupdate.api.view.optionReportBetaAddons= autoupdate.api.view.optionReportReleaseAddons= -autoupdate.api.view.updatedAddons = Return a list of any add-ons that have been changed in the Marketplace since the last check for updates -autoupdate.desc = Allows ZAP to check for updates -autoupdate.name = Auto-update Extension +autoupdate.api.view.updatedAddons = \ub9c8\uc9c0\ub9c9 \uc5c5\ub370\uc774\ud2b8 \ud655\uc778 \uc774\ud6c4 \ub9c8\ucf13\ud50c\ub808\uc774\uc2a4\uc5d0\uc11c \ubcc0\uacbd\ub41c \ubaa8\ub4e0 \uc560\ub4dc\uc628 \ubaa9\ub85d\uc744 \ubc18\ud658\ud569\ub2c8\ub2e4. +autoupdate.desc = ZAP\uc774 \uc5c5\ub370\uc774\ud2b8\ub97c \ud655\uc778\ud560 \uc218 \uc788\ub3c4\ub85d \ud5c8\uc6a9\ud569\ub2c8\ub2e4. +autoupdate.name = \ud655\uc7a5 \uae30\ub2a5 \uc790\ub3d9 \uc5c5\ub370\uc774\ud2b8 -break.api.action.addHttpBreakpoint = Adds a custom HTTP breakpoint. The string is the string to match. Location may be one of\: url, request_header, request_body, response_header or response_body. Match may be\: contains or regex. Inverse (match) may be true or false. Lastly, ignorecase (when matching the string) may be true or false. +break.api.action.addHttpBreakpoint = \uc0ac\uc6a9\uc790 \uc9c0\uc815 HTTP \ube0c\ub808\uc774\ud06c\ud3ec\uc778\ud2b8\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4. \ubb38\uc790\uc5f4\uc740 \uc77c\uce58\uc2dc\ud0ac \ubb38\uc790\uc5f4\uc785\ub2c8\ub2e4. \uc704\uce58\ub294 \ub2e4\uc74c \uc911 \ud558\ub098\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4\: url, request_header, request_body, response_header \ub610\ub294 response_body. \ub9e4\uce6d \ubc29\uc2dd\uc740 \ub2e4\uc74c\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4\: contains(\ud3ec\ud568) \ub610\ub294 regex(\uc815\uaddc \ud45c\ud604\uc2dd). \uc5ed(Inverse) \ub9e4\uce6d\uc740 true \ub610\ub294 false\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub9c8\uc9c0\ub9c9\uc73c\ub85c, ignorecase(\ubb38\uc790\uc5f4 \ub9e4\uce6d \uc2dc \ub300\uc18c\ubb38\uc790 \ubb34\uc2dc)\ub294 true \ub610\ub294 false\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4. break.api.action.addHttpBreakpoint.param.ignorecase= break.api.action.addHttpBreakpoint.param.inverse= break.api.action.addHttpBreakpoint.param.location= break.api.action.addHttpBreakpoint.param.match= break.api.action.addHttpBreakpoint.param.string= -break.api.action.break = Controls the global break functionality. The type may be one of\: http-all, http-request or http-response. The state may be true (for turning break on for the specified type) or false (for turning break off). Scope is not currently used. +break.api.action.break = \uc804\uc5ed \ube0c\ub808\uc774\ud06c \uae30\ub2a5(Global Break Functionality)\uc744 \uc81c\uc5b4\ud569\ub2c8\ub2e4. \uc720\ud615(type)\uc740 \ub2e4\uc74c \uc911 \ud558\ub098\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4\: http-all, http-request \ub610\ub294 http-response. \uc0c1\ud0dc\ub294 true(\uc9c0\uc815\ub41c \uc720\ud615\uc5d0 \ub300\ud574 \ube0c\ub808\uc774\ud06c\ub97c \ucf1c\ub294 \uacbd\uc6b0) \ub610\ub294 false(\ube0c\ub808\uc774\ud06c\ub97c \ub044\ub294 \uacbd\uc6b0)\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ubc94\uc704\ub294 \ud604\uc7ac \uc0ac\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. break.api.action.break.param.scope= break.api.action.break.param.state= break.api.action.break.param.type= -break.api.action.continue = Submits the currently intercepted message and unsets the global request/response breakpoints -break.api.action.drop = Drops the currently intercepted message -break.api.action.removeHttpBreakpoint = Removes the specified breakpoint +break.api.action.continue = \ud604\uc7ac \uac00\ub85c\ucc48 \uba54\uc2dc\uc9c0\ub97c \uc81c\ucd9c\ud558\uace0 \uc804\uc5ed \uc694\uccad/\uc751\ub2f5 \ube0c\ub808\uc774\ud06c\ud3ec\uc778\ud2b8\ub97c \ud574\uc81c\ud569\ub2c8\ub2e4. +break.api.action.drop = \ud604\uc7ac \uac00\ub85c\ucc48 \uba54\uc2dc\uc9c0\ub97c \ub4dc\ub86d(Drop)\ud569\ub2c8\ub2e4. +break.api.action.removeHttpBreakpoint = \uc9c0\uc815\ub41c \ube0c\ub808\uc774\ud06c\ud3ec\uc778\ud2b8\ub97c \uc81c\uac70\ud569\ub2c8\ub2e4. break.api.action.removeHttpBreakpoint.param.ignorecase= break.api.action.removeHttpBreakpoint.param.inverse= break.api.action.removeHttpBreakpoint.param.location= break.api.action.removeHttpBreakpoint.param.match= break.api.action.removeHttpBreakpoint.param.string= -break.api.action.setHttpMessage = Overwrites the currently intercepted message with the data provided +break.api.action.setHttpMessage = \ud604\uc7ac \uac00\ub85c\ucc48 \uba54\uc2dc\uc9c0\ub97c \uc81c\uacf5\ub41c \ub370\uc774\ud130\ub85c \ub36e\uc5b4\uc501\ub2c8\ub2e4. break.api.action.setHttpMessage.param.httpBody= break.api.action.setHttpMessage.param.httpHeader= -break.api.action.step = Submits the currently intercepted message, the next request or response will automatically be intercepted +break.api.action.step = \ud604\uc7ac \uac00\ub85c\ucc48 \uba54\uc2dc\uc9c0\ub97c \uc81c\ucd9c\ud558\uba74, \ub2e4\uc74c \uc694\uccad \ub610\ub294 \uc751\ub2f5\uc774 \uc790\ub3d9\uc73c\ub85c \uac00\ub85c\ucc44\uc9d1\ub2c8\ub2e4. break.api.desc= -break.api.pconn.waitForHttpBreak = Waits until an HTTP breakpoint has been hit, at which point it returns the message. Poll is the number of milliseconds ZAP will pause between checking for breakpoints being hit (default 500). If keepalive is zero or less then the response will be returned as a Server Sent Event, otherwise it is used as the frequency in seconds at which 'keepalive' events should be returned and the response is sent as a standard response. -break.api.view.httpMessage = Returns the HTTP message currently intercepted (if any) -break.api.view.isBreakAll = Returns True if ZAP will break on both requests and responses -break.api.view.isBreakRequest = Returns True if ZAP will break on requests -break.api.view.isBreakResponse = Returns True if ZAP will break on responses +break.api.pconn.waitForHttpBreak = HTTP \ube0c\ub808\uc774\ud06c\ud3ec\uc778\ud2b8\uc5d0 \ub3c4\ub2ec\ud560 \ub54c\uae4c\uc9c0 \ub300\uae30\ud558\uba70, \ud574\ub2f9 \uc2dc\uc810\uc5d0 \uba54\uc2dc\uc9c0\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4. Poll\uc740 \ube0c\ub808\uc774\ud06c\ud3ec\uc778\ud2b8 \ub3c4\ub2ec \uc5ec\ubd80\ub97c \ud655\uc778\ud558\ub294 \uc0ac\uc774\uc5d0 ZAP\uc774 \uc77c\uc2dc \uc911\uc9c0\ud558\ub294 \ubc00\ub9ac\ucd08 \ub2e8\uc704\uc758 \uc2dc\uac04\uc785\ub2c8\ub2e4 (\uae30\ubcf8\uac12 500). \ub9cc\uc57d keepalive\uac00 0 \uc774\ud558\uc774\uba74 \uc751\ub2f5\uc740 Server Sent Event\ub85c \ubc18\ud658\ub418\uba70, \uadf8\ub807\uc9c0 \uc54a\uc740 \uacbd\uc6b0 'keepalive' \uc774\ubca4\ud2b8\uac00 \ubc18\ud658\ub418\uc5b4\uc57c \ud558\ub294 \ucd08 \ub2e8\uc704\uc758 \ube48\ub3c4\ub85c \uc0ac\uc6a9\ub418\uba70 \uc751\ub2f5\uc740 \ud45c\uc900 \uc751\ub2f5\uc73c\ub85c \uc804\uc1a1\ub429\ub2c8\ub2e4. +break.api.view.httpMessage = \ud604\uc7ac \uac00\ub85c\ucc44\uc9c4 HTTP \uba54\uc2dc\uc9c0(\uc788\ub294 \uacbd\uc6b0)\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4. +break.api.view.isBreakAll = ZAP\uc774 \uc694\uccad\uacfc \uc751\ub2f5 \ubaa8\ub450\uc5d0\uc11c \ube0c\ub808\uc774\ud06c\ub97c \uac78\uba74 True\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4. +break.api.view.isBreakRequest = ZAP\uc774 \uc694\uccad\uc5d0\uc11c \ube0c\ub808\uc774\ud06c\ub97c \uac78\uba74 True\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4. +break.api.view.isBreakResponse = ZAP\uc774 \uc751\ub2f5\uc5d0\uc11c \ube0c\ub808\uc774\ud06c\ub97c \uac78\uba74 True\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4. -brk.add.button.add = Add +brk.add.button.add = \ucd94\uac00 brk.add.button.cancel = \ucde8\uc18c -brk.add.error.history = Error getting History -brk.add.popup = Break... -brk.add.title = Add Breakpoint -brk.alwaysOnTop.message = By default ZAP will remain on top of all other windows when a breakpoint is hit.\nPress 'Cancel' to disable this feature.\nThis option can changed via Tools/Breakpoints -brk.brkpoint.add.title = Add Breakpoint -brk.brkpoint.edit.title = Edit Breakpoint -brk.brkpoint.error.nostr = You must supply a string -brk.brkpoint.error.regex = Invalid regular expression -brk.brkpoint.ignorecase.label = Ignore Case\: -brk.brkpoint.inverse.label = Inverse\: -brk.brkpoint.location.label = Location\: -brk.brkpoint.location.request_body = Request Body -brk.brkpoint.location.request_header = Request Header -brk.brkpoint.location.response_body = Response Body -brk.brkpoint.location.response_header = Response Header +brk.add.error.history = \ud788\uc2a4\ud1a0\ub9ac \uac00\uc838\uc624\uae30 \uc624\ub958 +brk.add.popup = \uba48\ucda4... +brk.add.title = \uc911\ub2e8\uc810 \ucd94\uac00 +brk.alwaysOnTop.message = \uae30\ubcf8\uc801\uc73c\ub85c \ube0c\ub808\uc774\ud06c\ud3ec\uc778\ud2b8\uc5d0 \ub3c4\ub2ec\ud558\uba74 ZAP\uc774 \ub2e4\ub978 \ubaa8\ub4e0 \ucc3d \uc704\uc5d0 \uc720\uc9c0\ub429\ub2c8\ub2e4.\n\uc774 \uae30\ub2a5\uc744 \ube44\ud65c\uc131\ud654\ud558\ub824\uba74 '\ucde8\uc18c'\ub97c \ub204\ub974\uc2ed\uc2dc\uc624.\n\uc774 \uc635\uc158\uc740 \ub3c4\uad6c/\uc911\ub2e8\uc810\uc744 \ud1b5\ud574 \ubcc0\uacbd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. +brk.brkpoint.add.title = \uc911\ub2e8\uc810 \ucd94\uac00 +brk.brkpoint.edit.title = \uc911\ub2e8\uc810 \uc218\uc815 +brk.brkpoint.error.nostr = \ubb38\uc790\uc5f4\uc744 \uc81c\uacf5\ud574\uc57c \ud569\ub2c8\ub2e4. +brk.brkpoint.error.regex = \uc798\ubabb\ub41c \uc815\uaddc \ud45c\ud604\uc2dd +brk.brkpoint.ignorecase.label = \ub300\uc18c\ubb38\uc790 \ubb34\uc2dc\: +brk.brkpoint.inverse.label = \uc5ed(Inverse)\: +brk.brkpoint.location.label = \uc704\uce58\: +brk.brkpoint.location.request_body = \uc694\uccad \ubcf8\ubb38 +brk.brkpoint.location.request_header = \uc694\uccad \ud5e4\ub354 +brk.brkpoint.location.response_body = \uc751\ub2f5 \ubcf8\ubb38 +brk.brkpoint.location.response_header = \uc751\ub2f5 \ud5e4\ub354 brk.brkpoint.location.url = URL -brk.brkpoint.match.contains = Contains -brk.brkpoint.match.label = Match\: -brk.brkpoint.match.regex = Regex -brk.brkpoint.onscope = Break if out of scope -brk.brkpoint.string.label = String\: -brk.brkpoint.warn.urlfragment = Pattern shouldn't include URL fragment (\#) -brk.checkBox.fixHostHeader = Update Host Header -brk.checkBox.fixLength = Update Content Length -brk.desc = Allows you to intercept and modify requests and responses +brk.brkpoint.match.contains = \ud3ec\ud568 +brk.brkpoint.match.label = \ub9e4\uce58(\uc77c\uce58)\: +brk.brkpoint.match.regex = \uc815\uaddc\uc2dd +brk.brkpoint.onscope = \ubc94\uc704\ub97c \ubc97\uc5b4\ub098\uba74 \ube0c\ub808\uc774\ud06c +brk.brkpoint.string.label = \ubb38\uc790\uc5f4\: +brk.brkpoint.warn.urlfragment = \ud328\ud134\uc5d0\ub294 URL \ud504\ub798\uadf8\uba3c\ud2b8(\#)\uac00 \ud3ec\ud568\ub418\uc5b4\uc11c\ub294 \uc548 \ub429\ub2c8\ub2e4. +brk.checkBox.fixHostHeader = Host \ud5e4\ub354 \uc5c5\ub370\uc774\ud2b8 +brk.checkBox.fixLength = Content Length \uc5c5\ub370\uc774\ud2b8 +brk.desc = \uc694\uccad\uacfc \uc751\ub2f5\uc744 \uac00\ub85c\ucc44\uace0 \uc218\uc815\ud560 \uc218 \uc788\ub3c4\ub85d \ud5c8\uc6a9\ud569\ub2c8\ub2e4. brk.dialogue.confirmDropMessage.button.cancel.label = \ucde8\uc18c -brk.dialogue.confirmDropMessage.button.confirm.label = Drop -brk.dialogue.confirmDropMessage.message = Are you sure you want to drop the trapped message? +brk.dialogue.confirmDropMessage.button.confirm.label = \ubc84\ub9ac\uae30 +brk.dialogue.confirmDropMessage.message = \ud2b8\ub7a9\ub41c \uba54\uc2dc\uc9c0\ub97c \ub4dc\ub86d(Drop)\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? brk.dialogue.confirmDropMessage.option.dontAskAgain = \ub2e4\uc2dc \ubb3b\uc9c0 \uc54a\uc74c -brk.dialogue.confirmDropMessage.title = Confirm Drop Trapped Message +brk.dialogue.confirmDropMessage.title = \ud2b8\ub7a9\ub41c \uba54\uc2dc\uc9c0 \ub4dc\ub86d \ud655\uc778 brk.edit.button.save = \uc800\uc7a5 -brk.edit.popup = Edit... -brk.edit.title = Edit Breakpoint -brk.name = Breakpoint Extension -brk.optionspanel.name = Breakpoints -brk.optionspanel.option.alwaysOnTop.label = ZAP always on top when breakpoint hit. -brk.optionspanel.option.breakmode.dual.label = Separate Request and Response Buttons -brk.optionspanel.option.breakmode.label = Break Buttons Mode\: -brk.optionspanel.option.breakmode.simple.label = Single Combined Button -brk.optionspanel.option.confirmDropMessage.label = Confirm drop trapped message. +brk.edit.popup = \ud3b8\uc9d1... +brk.edit.title = \uc911\ub2e8\uc810 \uc218\uc815 +brk.name = \uc911\ub2e8\uc810 \ud655\uc7a5 \uae30\ub2a5 +brk.optionspanel.name = \uc911\ub2e8\uc810 +brk.optionspanel.option.alwaysOnTop.label = \uc911\ub2e8\uc810 \ub3c4\ub2ec \uc2dc ZAP\uc774 \ud56d\uc0c1 \uc704\uc5d0 \uc720\uc9c0\ub429\ub2c8\ub2e4. +brk.optionspanel.option.breakmode.dual.label = \uc694\uccad \ubc0f \uc751\ub2f5 \ubc84\ud2bc \ubd84\ub9ac +brk.optionspanel.option.breakmode.label = \ube0c\ub808\uc774\ud06c \ubc84\ud2bc \ubaa8\ub4dc\: +brk.optionspanel.option.breakmode.simple.label = \ub2e8\uc77c \ud1b5\ud569 \ubc84\ud2bc +brk.optionspanel.option.confirmDropMessage.label = \ud2b8\ub7a9\ub41c \uba54\uc2dc\uc9c0 \ub4dc\ub86d\uc744 \ud655\uc778\ud558\uc2ed\uc2dc\uc624. brk.optionspanel.option.cssAndFontsUrlRegex.label = CSS and Fonts URL Regex\: brk.optionspanel.option.inScopeOnly.label = Only break on messages in scope. brk.optionspanel.option.javaScriptUrlRegex.label = Javascript URL Regex\: @@ -860,12 +860,12 @@ brk.optionspanel.option.multimediaUrlRegex.label = Multimedia URL Regex\: brk.optionspanel.option.notpossibletoshowtip = Cannot show these buttons when break buttons are only shown in the main toolbar. brk.optionspanel.option.showBreakFilteringButtons.label = Show buttons to select the requests you don't want ZAP to break on. brk.panel.mnemonic = b -brk.panel.title = Breakpoints +brk.panel.title = \uc911\ub2e8\uc810 brk.panel.warn.datainvalid = Unable to set the data to the message. -brk.remove.popup = Remove -brk.table.header.condition = Condition -brk.table.header.enabled = Enabled -brk.table.header.type = Type +brk.remove.popup = \uc81c\uac70 +brk.table.header.condition = \uc870\uac74 +brk.table.header.enabled = \ud65c\uc131\ub428 +brk.table.header.type = \uc720\ud615 brk.toolbar.button.all.set = Set Break on All Requests and Responses brk.toolbar.button.all.unset = Unset break on all requests and responses brk.toolbar.button.bin = Bin Request or Response @@ -879,9 +879,9 @@ brk.toolbar.button.brkmultimedia.set = Set can break on Multimedia brk.toolbar.button.brkmultimedia.unset = Set ignore breaks on Multimedia brk.toolbar.button.brkpoint = Add a custom HTTP breakpoint... brk.toolbar.button.cont = Submit and Continue to Next Breakpoint -brk.toolbar.button.request.set = Set break on all requests +brk.toolbar.button.request.set = \ubaa8\ub4e0 \uc694\uccad\uc5d0 \uc911\ub2e8\uc810 \uc124\uc815 brk.toolbar.button.request.unset = Unset break on all requests -brk.toolbar.button.response.set = Set break on all responses +brk.toolbar.button.response.set = \ubaa8\ub4e0 \uc751\ub2f5\uc5d0 \uc911\ub2e8\uc810 \uc124\uc815 brk.toolbar.button.response.unset = Unset break on all responses brk.toolbar.button.step = Submit and Step to Next Request or Response @@ -899,18 +899,18 @@ callback.options.title = Callback Address callback.panel.clear.button.label = Clear callback.panel.clear.button.toolTip = Clear Callbacks callback.panel.name = Callbacks -callback.panel.options.button.label = Options -callback.panel.table.column.handler = Handler +callback.panel.options.button.label = \uc635\uc158 +callback.panel.table.column.handler = \ud578\ub4e4\ub7ec callback.panel.table.column.referer = Referer callback.test.msg = Received test callback\: {0} from {1} -certificates.pkcs11.drivers.button.add = Add +certificates.pkcs11.drivers.button.add = \ucd94\uac00 certificates.pkcs11.drivers.button.browse = \ucc3e\uc544\ubcf4\uae30 certificates.pkcs11.drivers.button.close = \ub2eb\uae30 -certificates.pkcs11.drivers.button.delete = Delete -certificates.pkcs11.drivers.label.name = Name +certificates.pkcs11.drivers.button.delete = \uc0ad\uc81c +certificates.pkcs11.drivers.label.name = \uc774\ub984 certificates.pkcs11.drivers.label.path = Path (Path to a DLL for PKCS\#11 support - usually delivered with the smartcard software) -certificates.pkcs11.drivers.label.slot = Slot +certificates.pkcs11.drivers.label.slot = \uc2ac\ub86f certificates.pkcs11.drivers.label.slotIndex = Slot Index certificates.pkcs11.drivers.title = PKCS\#11 Drivers certificates.pkcs11.label.experimentalSliSupport = Enable experimental Slot List Index support @@ -1002,7 +1002,7 @@ cfu.label.zap.border = ZAP Core cfu.manage.title = Manage Add-ons cfu.options.checkAddonUpdates = Check for updates to the add-ons you have installed. cfu.options.dialog.dirs.remove.button.cancel = \ucde8\uc18c -cfu.options.dialog.dirs.remove.button.confirm = Remove +cfu.options.dialog.dirs.remove.button.confirm = \uc81c\uac70 cfu.options.dialog.dirs.remove.checkbox.label = Do not show this message again. cfu.options.dialog.dirs.remove.text = Are you sure you want to remove the selected directory? cfu.options.dialog.dirs.remove.title = Remove Add-on Directories @@ -1045,7 +1045,7 @@ cfu.table.header.file = \ud30c\uc77c cfu.table.header.id = ID cfu.table.header.info = Info cfu.table.header.mandatory = Mandatory -cfu.table.header.name = Name +cfu.table.header.name = \uc774\ub984 cfu.table.header.notbefore = Not Before Version cfu.table.header.note = Note cfu.table.header.notfrom = Not From Version @@ -1144,10 +1144,10 @@ conn.options.proxy.auth.required = Outgoing proxy server requires authentication conn.options.proxy.auth.showpass = Show Password? conn.options.proxy.auth.username = User Name\: conn.options.proxy.error.response.msg = \tYour "Options / Connection / Use Proxy Chain" settings might be incorrect. -conn.options.proxy.excluded.domain.add.button.confirm = Add +conn.options.proxy.excluded.domain.add.button.confirm = \ucd94\uac00 conn.options.proxy.excluded.domain.add.title = Add Domain Exclusion conn.options.proxy.excluded.domain.dialog.remove.button.cancel = \ucde8\uc18c -conn.options.proxy.excluded.domain.dialog.remove.button.confirm = Remove +conn.options.proxy.excluded.domain.dialog.remove.button.confirm = \uc81c\uac70 conn.options.proxy.excluded.domain.dialog.remove.checkbox.label = Do not show this message again. conn.options.proxy.excluded.domain.dialog.remove.text = Are you sure you want to remove the selected domain exclusion? conn.options.proxy.excluded.domain.dialog.remove.title = Remove Domain Exclusion @@ -1156,8 +1156,8 @@ conn.options.proxy.excluded.domain.field.label.enabled = Enabled\: conn.options.proxy.excluded.domain.field.label.regex = Regex\: conn.options.proxy.excluded.domain.modify.button.confirm = Modify conn.options.proxy.excluded.domain.modify.title = Modify Domain Exclusion -conn.options.proxy.excluded.domain.table.header.enabled = Enabled -conn.options.proxy.excluded.domain.table.header.regex = Regex +conn.options.proxy.excluded.domain.table.header.enabled = \ud65c\uc131\ub428 +conn.options.proxy.excluded.domain.table.header.regex = \uc815\uaddc\uc2dd conn.options.proxy.excluded.domain.table.header.value = IP Address/Domain conn.options.proxy.excluded.domain.warning.invalid.regex.text = The regular expression is invalid. conn.options.proxy.excluded.domain.warning.invalid.regex.title = Domain Exclusion Regex Invalid @@ -1167,7 +1167,7 @@ conn.options.proxy.useProxyChain = Use Proxy Chain conn.options.proxy.username.empty = Empty proxy chain user name. conn.options.socks.dns = Use SOCKS' DNS conn.options.socks.dns.tooltip = Only supported with version 5. -conn.options.socks.enabled = Enabled +conn.options.socks.enabled = \ud65c\uc131\ub428 conn.options.socks.host = \ud638\uc2a4\ud2b8\: conn.options.socks.host.empty = The SOCKS host is empty. conn.options.socks.password = Password\: @@ -1249,13 +1249,13 @@ context.ddn.dialog.remove.title = Remove Structural Modifier context.ddn.dialog.type = Type\: context.ddn.dialog.type.data = Data Driven Node context.ddn.dialog.type.struct = Structural Parameter -context.ddn.table.header.name = Name -context.ddn.table.header.regex = Regex +context.ddn.table.header.name = \uc774\ub984 +context.ddn.table.header.regex = \uc815\uaddc\uc2dd context.ddn.table.header.type = Type context.ddn.table.type.data = \ub370\uc774\ud130 context.ddn.table.type.struct = Struct context.default.name = Default Context -context.delete.popup = Delete +context.delete.popup = \uc0ad\uc81c context.delete.warning = Are you sure you want to remove the following context(s)?\n{0} context.error.name.duplicated = A context with same name already exists. context.error.name.empty = The context name must be provided. @@ -1508,7 +1508,7 @@ custompages.dialog.add.title = Add Custom Page custompages.dialog.modify.button.confirm = \ud655\uc778 custompages.dialog.modify.title = Modify Custom Page custompages.dialog.remove.button.cancel = \ucde8\uc18c -custompages.dialog.remove.button.confirm = Remove +custompages.dialog.remove.button.confirm = \uc81c\uac70 custompages.dialog.remove.checkbox.label = Do not show this message again. custompages.dialog.remove.text = Are you sure you want to remove the selected Custom Page? custompages.dialog.remove.title = Remove Custom Page @@ -1519,7 +1519,7 @@ custompages.popup.indicator = {0} \: Custom Page Indicator custompages.popup.url = {0} \: Custom Page URL custompages.table.header.content = Content custompages.table.header.contentlocation = Content Location -custompages.table.header.enabled = Enabled +custompages.table.header.enabled = \ud65c\uc131\ub428 custompages.table.header.isregex = Is RegEx? custompages.table.header.type = Custom Page Type custompages.type.auth = Auth. Issue @@ -1558,7 +1558,7 @@ edit.name = Edit Menu Extension export.button.default.filename = Untitled.csv export.button.error = Error while exporting\: -export.button.name = Export +export.button.name = \ub0b4\ubcf4\ub0b4\uae30 export.button.success = Export successful\! exportUrls.popup = Export All URLs to File... @@ -1688,8 +1688,8 @@ history.jumpto.popup.label = Jump to History ID... history.jumpto.title = Jump to History ID... history.linkWithSitesSelection.selected.button.tooltip = Unlink with Sites selection history.linkWithSitesSelection.unselected.button.tooltip = Link with Sites selection -history.managetags.button.add = Add -history.managetags.button.delete = Delete +history.managetags.button.add = \ucd94\uac00 +history.managetags.button.delete = \uc0ad\uc81c history.managetags.button.save = \uc800\uc7a5 history.managetags.label.addtag = Add Tag\: history.managetags.label.currenttags = Current Tags\: @@ -1701,7 +1701,7 @@ history.panel.title = History history.purge.cancel = \ucde8\uc18c history.purge.confirm = \ud655\uc778 history.purge.confirm.message = Don't show this dialog again. -history.purge.popup = Delete +history.purge.popup = \uc0ad\uc81c history.purge.title = Delete History Record(s) history.purge.warning = Are you sure you want to delete the record(s)? history.scan.warning = Error getting History. @@ -1833,7 +1833,7 @@ httpsessions.options.dialog.token.field.label.name = Token\: httpsessions.options.dialog.token.modify.button.confirm = Modify httpsessions.options.dialog.token.modify.title = Modify HTTP Session Token httpsessions.options.dialog.token.remove.button.cancel = \ucde8\uc18c -httpsessions.options.dialog.token.remove.button.confirm = Remove +httpsessions.options.dialog.token.remove.button.confirm = \uc81c\uac70 httpsessions.options.dialog.token.remove.checkbox.label = Do not show this message again. httpsessions.options.dialog.token.remove.text = Are you sure you want to remove the selected token? httpsessions.options.dialog.token.remove.title = Remove HTTP Session Token @@ -1841,7 +1841,7 @@ httpsessions.options.dialog.token.warning.name.repeated.text = A HTTP Session to httpsessions.options.dialog.token.warning.name.repeated.title = Duplicated HTTP Session Token Name httpsessions.options.label.proxyOnly = Enabled for Proxy only (not recommended) httpsessions.options.label.tokens =Default session tokens (case-insensitive)
* If you add or change any of the token names then you MUST revisit pages containing those tokens before they are recognized.
-httpsessions.options.table.header.enabled = Enabled +httpsessions.options.table.header.enabled = \ud65c\uc131\ub428 httpsessions.options.table.header.token = Token Name httpsessions.options.title = HTTP \uc138\uc158 httpsessions.panel.mnemonic = h @@ -1855,7 +1855,7 @@ httpsessions.popup.session.remove = \uc138\uc158 \uc81c\uac70 httpsessions.session.defaultName = Session {0} httpsessions.table.header.active = Active httpsessions.table.header.matched = Messages Matched -httpsessions.table.header.name = Name +httpsessions.table.header.name = \uc774\ub984 httpsessions.table.header.tokens = Session Tokens' Values httpsessions.toolbar.newsession.label = New Session httpsessions.toolbar.newsession.tooltip = Force a new session @@ -1926,7 +1926,7 @@ log4j.tools.menu.gc = Run the Garbage Collector manReq.button.send = Send manReq.button.send.tooltip = Alt+Enter manReq.button.send.tooltip.mac = Control+Option+Return -manReq.checkBox.fixLength = Update Content Length +manReq.checkBox.fixLength = Content Length \uc5c5\ub370\uc774\ud2b8 manReq.checkBox.followRedirect = Follow redirect manReq.checkBox.useCSRF = Regenerate Anti-CSRF Token manReq.checkBox.useCookies = Accept cookies @@ -2069,14 +2069,14 @@ messagelocations.table.header.value = \uac12 messagelocationspanel.add.location.tooltip = To add a location you must select it first in the message. messagelocationspanel.add.location.warning.locations.overlap = Selected location not valid.\nThe selected location overlaps an already added location. messagelocationspanel.dialog.remove.location.button.cancel = \ucde8\uc18c -messagelocationspanel.dialog.remove.location.button.confirm = Remove +messagelocationspanel.dialog.remove.location.button.confirm = \uc81c\uac70 messagelocationspanel.dialog.remove.location.checkbox.label = Do not show this message again. messagelocationspanel.dialog.remove.location.text = Are you sure you want to remove the selected message location? messagelocationspanel.dialog.remove.location.title = Remove Message Location multiple.options.panel.add.button.label = Add... -multiple.options.panel.disableAll.button.label = Disable All -multiple.options.panel.enableAll.button.label = Enable All +multiple.options.panel.disableAll.button.label = \ubaa8\ub450 \uc0ac\uc6a9 \uc548 \ud568 +multiple.options.panel.enableAll.button.label = \ubaa8\ub450 \uc0ac\uc6a9 multiple.options.panel.modify.button.label = Modify... multiple.options.panel.ordered.move.bottom.button.label = Bottom multiple.options.panel.ordered.move.bottom.button.tooltip = Moves the selected element to bottom position. @@ -2086,11 +2086,11 @@ multiple.options.panel.ordered.move.top.button.label = Top multiple.options.panel.ordered.move.top.button.tooltip = Moves the selected element to top position. multiple.options.panel.ordered.move.up.button.label = Up multiple.options.panel.ordered.move.up.button.tooltip = Moves the selected element up one position. -multiple.options.panel.remove.button.label = Remove +multiple.options.panel.remove.button.label = \uc81c\uac70 multiple.options.panel.removeWithoutConfirmation.checkbox.label = Remove without confirmation? -multiple.options.regexes.dialog.add.regex.button.confirm = Add +multiple.options.regexes.dialog.add.regex.button.confirm = \ucd94\uac00 multiple.options.regexes.dialog.add.regex.title = Add Regular Expression -multiple.options.regexes.dialog.export.button = Export +multiple.options.regexes.dialog.export.button = \ub0b4\ubcf4\ub0b4\uae30 multiple.options.regexes.dialog.export.error = Failed to export Regex patterns.\n\n{0} multiple.options.regexes.dialog.import.button = Import multiple.options.regexes.dialog.import.error = Failed to import Regex patterns.\n\n{0} @@ -2102,11 +2102,11 @@ multiple.options.regexes.dialog.regex.invalid.text = The provided regular expres multiple.options.regexes.dialog.regex.invalid.title = Invalid Regular Expression multiple.options.regexes.dialog.regex.label = Regex\: multiple.options.regexes.dialog.remove.regex.button.cancel = \ucde8\uc18c -multiple.options.regexes.dialog.remove.regex.button.confirm = Remove +multiple.options.regexes.dialog.remove.regex.button.confirm = \uc81c\uac70 multiple.options.regexes.dialog.remove.regex.checkbox.label = Do not show this message again. multiple.options.regexes.dialog.remove.regex.text = Are you sure you want to remove the selected regular expression? multiple.options.regexes.dialog.remove.regex.title = Remove Regular Expression -multiple.options.regexes.table.header.regex = Regex +multiple.options.regexes.table.header.regex = \uc815\uaddc\uc2dd network.ssl.error.connect = An exception occurred while attempting to connect to\: network.ssl.error.exception = The exception was\: \n @@ -2116,21 +2116,21 @@ network.ssl.error.help.url = https\://www.zaproxy.org/faq/how-to-connect-to-an-h options.acsrf.SearchForPartialMatching = Use params as Anti-CSRF token if its name contain one of the tokens (partial matching). options.acsrf.dialog.token.add.button.cancel = \ucde8\uc18c -options.acsrf.dialog.token.add.button.confirm = Add +options.acsrf.dialog.token.add.button.confirm = \ucd94\uac00 options.acsrf.dialog.token.add.title = Add Anti-CSRF Token options.acsrf.dialog.token.field.label.enabled = Enabled\: options.acsrf.dialog.token.field.label.name = Token\: options.acsrf.dialog.token.modify.button.confirm = Modify options.acsrf.dialog.token.modify.title = Modify Anti-CSRF Token options.acsrf.dialog.token.remove.button.cancel = \ucde8\uc18c -options.acsrf.dialog.token.remove.button.confirm = Remove +options.acsrf.dialog.token.remove.button.confirm = \uc81c\uac70 options.acsrf.dialog.token.remove.checkbox.label = Do not show this message again. options.acsrf.dialog.token.remove.text = Are you sure you want to remove the selected token? options.acsrf.dialog.token.remove.title = Remove Anti-CSRF Token options.acsrf.dialog.token.warning.name.repeated.text = An anti-CSRF token with the given name already exists. options.acsrf.dialog.token.warning.name.repeated.title = Duplicated Anti-CSRF Token Name options.acsrf.label.tokens =These tokens are treated as anti-CSRF tokens.
At the moment only FORM parameter tokens are supported
All token names are treated as being case-insensitive.
If you add or change any of the token names then you MUST revisit pages containing those tokens before they will be recognised
-options.acsrf.table.header.enabled = Enabled +options.acsrf.table.header.enabled = \ud65c\uc131\ub428 options.acsrf.table.header.token = Token options.acsrf.title = Anti-CSRF Tokens options.cert.button.browse = \ucc3e\uc544\ubcf4\uae30 @@ -2181,14 +2181,14 @@ options.ext.label.addon = Add-on options.ext.label.author = Author options.ext.label.core = Core options.ext.label.enable = Enabling or disabling of extensions will only apply after a restart. -options.ext.label.enabled = Enabled +options.ext.label.enabled = \ud65c\uc131\ub428 options.ext.label.extension = Extension options.ext.label.iscore = Yes -options.ext.label.name = Name +options.ext.label.name = \uc774\ub984 options.ext.label.url = Homepage options.ext.title = Extensions options.globalexcludeurl.dialog.token.add.button.cancel = \ucde8\uc18c -options.globalexcludeurl.dialog.token.add.button.confirm = Add +options.globalexcludeurl.dialog.token.add.button.confirm = \ucd94\uac00 options.globalexcludeurl.dialog.token.add.title = Add Global Exclude URL Regex options.globalexcludeurl.dialog.token.field.label.description = \uc124\uba85\: options.globalexcludeurl.dialog.token.field.label.enabled = Enabled\: @@ -2196,7 +2196,7 @@ options.globalexcludeurl.dialog.token.field.label.name = URL Regex\: options.globalexcludeurl.dialog.token.modify.button.confirm = Modify options.globalexcludeurl.dialog.token.modify.title = Modify Global Exclude URL Regex options.globalexcludeurl.dialog.token.remove.button.cancel = \ucde8\uc18c -options.globalexcludeurl.dialog.token.remove.button.confirm = Remove +options.globalexcludeurl.dialog.token.remove.button.confirm = \uc81c\uac70 options.globalexcludeurl.dialog.token.remove.checkbox.label = Do not show this message again. options.globalexcludeurl.dialog.token.remove.text = Are you sure you want to remove the selected URL regex? options.globalexcludeurl.dialog.token.remove.title = Remove Global Exclude URL Regex @@ -2205,7 +2205,7 @@ options.globalexcludeurl.dialog.token.warning.name.repeated.title = Duplicated G options.globalexcludeurl.label.tokens =These regex URLs will be ignored by the Proxy, Scanner, and Spider when activated. See the help pages for more information.
options.globalexcludeurl.seeglobalconfig = Note\: URLs in Options / Global Exclude URL will also be ignored. options.globalexcludeurl.table.header.description = \uc124\uba85 -options.globalexcludeurl.table.header.enabled = Enabled +options.globalexcludeurl.table.header.enabled = \ud65c\uc131\ub428 options.globalexcludeurl.table.header.token = Regex URL options.globalexcludeurl.title = Global Exclude URL options.lang.file.chooser.description = ZAP language file @@ -2223,12 +2223,12 @@ options.lang.usesystemslocaleformat.label = Use system''s locale ({0}) for forma options.lang.usesystemslocaleformat.tooltip = Sets whether or not the system's locale should be used for formatting dates, numbers, or currencies. options.name = Options Extension options.proxy.additional.title = Additional Proxies -options.proxy.dialog.proxy.add.button.confirm = Add +options.proxy.dialog.proxy.add.button.confirm = \ucd94\uac00 options.proxy.dialog.proxy.add.title = Add Local Proxy options.proxy.dialog.proxy.modify.button.confirm = Modify options.proxy.dialog.proxy.modify.title = Modify Local Proxy options.proxy.dialog.proxy.remove.button.cancel = \ucde8\uc18c -options.proxy.dialog.proxy.remove.button.confirm = Remove +options.proxy.dialog.proxy.remove.button.confirm = \uc81c\uac70 options.proxy.dialog.proxy.remove.checkbox.label = Do not show this message again. options.proxy.dialog.proxy.remove.text = Are you sure you want to remove the selected Proxy? options.proxy.dialog.proxy.remove.title = Remove Local Proxy @@ -2247,12 +2247,12 @@ options.proxy.local.tooltip.alwaysDecodeGzip = Always automatically unzip options.proxy.local.tooltip.behindnat = Indicates that the Local Proxy (ZAP) is behind NAT.No script has been loaded yet. Select a Script in the box above and click the 'Load' button.
-session.method.script.field.label.scriptName = Script\: -session.method.script.load.button = Load +session.method.script.field.label.scriptName = \uc2a4\ud06c\ub9bd\ud2b8\: +session.method.script.load.button = \ubd88\ub7ec\uc624\uae30 session.method.script.load.errorScriptNotFound = Failed to find context''s Session Management script\:\n{0} session.method.script.loaded = {0} (loaded) session.method.script.type = Session Management @@ -2741,7 +2741,7 @@ sites.panel.title = Sites sites.purge.cancel = \ucde8\uc18c sites.purge.confirm = \ud655\uc778 sites.purge.confirm.message = Don't show this dialog again. -sites.purge.popup = Delete +sites.purge.popup = \uc0ad\uc81c sites.purge.title = Delete Site Node(s) sites.purge.warning = Are you sure you want to delete the node(s)?\nThis will delete all of the messages associated with the deleted Site Tree nodes. sites.showinsites.popup = Show in Sites Tab @@ -2898,23 +2898,23 @@ spider.custom.label.sendReferer = Send 'Referer' Header\: spider.custom.label.sitemap = Parse 'sitemap.xml'\: spider.custom.label.spiderSubtreeOnly = Spider Subtree Only spider.custom.label.start = Starting Point\: -spider.custom.label.user = User\: +spider.custom.label.user = \uc0ac\uc6a9\uc790\: spider.custom.noStartSubtreeOnly.error = A site node must be selected or a URL manually introduced, to spider a site's subtree. spider.custom.nostart.error = You must select a valid starting point\nincluding the protocol e.g. https\://www.example.com spider.custom.notSafe.error = Spider scans are not allowed in 'Safe' mode. spider.custom.popup = Spider... spider.custom.tab.adv = Advanced -spider.custom.tab.scope = Scope +spider.custom.tab.scope = \ubc94\uc704 spider.custom.targetNotInScope.error = The following target is not allowed in ''Protected'' mode\:\n{0} spider.custom.title = Spider spider.desc = Spider used for automatically finding URIs on a site spider.label.inScope = URI found during crawl\: spider.label.outOfScope = URI found but out of crawl scope\: spider.name = Spider Extension -spider.options.domains.in.scope.add.button.confirm = Add +spider.options.domains.in.scope.add.button.confirm = \ucd94\uac00 spider.options.domains.in.scope.add.title = Add Domain Always In Scope spider.options.domains.in.scope.dialog.remove.button.cancel = \ucde8\uc18c -spider.options.domains.in.scope.dialog.remove.button.confirm = Remove +spider.options.domains.in.scope.dialog.remove.button.confirm = \uc81c\uac70 spider.options.domains.in.scope.dialog.remove.checkbox.label = Do not show this message again. spider.options.domains.in.scope.dialog.remove.text = Are you sure you want to remove the selected domain? spider.options.domains.in.scope.dialog.remove.title = Remove Domain Always In Scope @@ -2923,8 +2923,8 @@ spider.options.domains.in.scope.field.label.enabled = Enabled\: spider.options.domains.in.scope.field.label.regex = Regex\: spider.options.domains.in.scope.modify.button.confirm = Modify spider.options.domains.in.scope.modify.title = Modify Domain Always In Scope -spider.options.domains.in.scope.table.header.enabled = Enabled -spider.options.domains.in.scope.table.header.regex = Regex +spider.options.domains.in.scope.table.header.enabled = \ud65c\uc131\ub428 +spider.options.domains.in.scope.table.header.regex = \uc815\uaddc\uc2dd spider.options.domains.in.scope.table.header.value = Domain spider.options.domains.in.scope.warning.invalid.regex.text = The regular expression is invalid. spider.options.domains.in.scope.warning.invalid.regex.title = Domain Always In Scope Regex Invalid @@ -3158,23 +3158,23 @@ users.api.view.getUserById.param.contextId = The Context ID users.api.view.getUserById.param.userId = The User ID users.api.view.usersList = Gets a list of users that belong to the context with the given ID, or all users if none provided. users.api.view.usersList.param.contextId = The Context ID -users.dialog.add.button.confirm = Add +users.dialog.add.button.confirm = \ucd94\uac00 users.dialog.add.field.label.enabled = Enabled\: users.dialog.add.field.label.name = User Name\: users.dialog.add.title = Add a New User users.dialog.modify.button.confirm = Modify users.dialog.modify.title = Modify Existing User users.dialog.remove.button.cancel = \ucde8\uc18c -users.dialog.remove.button.confirm = Remove +users.dialog.remove.button.confirm = \uc81c\uac70 users.dialog.remove.checkbox.label = Do not show this message again. users.dialog.remove.text = Are you sure you want to remove the selected User? users.dialog.remove.title = Remove User users.name = Users Extension users.panel.description = Users which can be used for various operations for this context. users.panel.title = Users -users.table.header.enabled = Enabled +users.table.header.enabled = \ud65c\uc131\ub428 users.table.header.id = ID -users.table.header.name = Name +users.table.header.name = \uc774\ub984 variant.options.excludedparam.dialog.token.add.button.confirm = \ucd94\uac00 variant.options.excludedparam.dialog.token.add.title = Add a parameter that needs to be excluded @@ -3190,7 +3190,7 @@ variant.options.excludedparam.dialog.token.warning.invalid.regex.title = Invalid variant.options.excludedparam.dialog.token.warning.name.repeated.text = An Excluded Parameter with the same name already exists. variant.options.excludedparam.dialog.token.warning.name.repeated.title = Duplicated Excluded Parameter variant.options.excludedparam.label.tokens =Parameters shown here will be ignored by the Scanner, if both the wildcarded URL and the specified location match.
-variant.options.excludedparam.table.header.name = Name +variant.options.excludedparam.table.header.name = \uc774\ub984 variant.options.excludedparam.table.header.type = Where variant.options.excludedparam.table.header.url = URL variant.options.injectable.addqueryparam.label = Add URL Query Parameter? @@ -3249,10 +3249,10 @@ view.cert.button.close = \ub2eb\uae30 view.cert.title = Certificate view.dialog.dontPrompt = Do not show this message again. view.dialog.remember = Remember my choice and do not show this message again. -view.href.table.cell.alert.risk.label.high = High +view.href.table.cell.alert.risk.label.high = \ub192\uc74c view.href.table.cell.alert.risk.label.info = Informational -view.href.table.cell.alert.risk.label.low = Low -view.href.table.cell.alert.risk.label.medium = Medium +view.href.table.cell.alert.risk.label.low = \ub0ae\uc74c +view.href.table.cell.alert.risk.label.medium = \uc911\uac04 view.href.table.cell.alert.risk.label.undefined = Undefined view.href.table.header.code = Code view.href.table.header.highestalert = Highest Alert diff --git a/zap/src/main/java/org/parosproxy/paros/core/scanner/VariantMultipartFormParameters.java b/zap/src/main/java/org/parosproxy/paros/core/scanner/VariantMultipartFormParameters.java index 24ea3129f80..ce0c9c3eb8f 100644 --- a/zap/src/main/java/org/parosproxy/paros/core/scanner/VariantMultipartFormParameters.java +++ b/zap/src/main/java/org/parosproxy/paros/core/scanner/VariantMultipartFormParameters.java @@ -96,8 +96,12 @@ private void parseImpl(HttpMessage msg, String contentType) { String boundaryCrlf = bareBoundary + HttpHeader.CRLF; for (String part : msg.getRequestBody().toString().split(Pattern.quote(boundaryCrlf))) { if (!StringUtils.isBlank(part)) { - String partHeaderLine = - part.substring(0, part.indexOf(HttpHeader.CRLF + HttpHeader.CRLF)); + int partOffset = part.indexOf(HttpHeader.CRLF + HttpHeader.CRLF); + if (partOffset < 0) { + // Move on, nothing to see here + continue; + } + String partHeaderLine = part.substring(0, partOffset); boolean isFileParam = partHeaderLine.contains("filename="); part = boundaryCrlf + part; Matcher nameMatcher = FIELD_NAME_PATTERN.matcher(partHeaderLine); diff --git a/zap/src/test/java/org/parosproxy/paros/core/scanner/VariantMultipartFormParametersUnitTest.java b/zap/src/test/java/org/parosproxy/paros/core/scanner/VariantMultipartFormParametersUnitTest.java index b272a517d7e..205d950a41c 100644 --- a/zap/src/test/java/org/parosproxy/paros/core/scanner/VariantMultipartFormParametersUnitTest.java +++ b/zap/src/test/java/org/parosproxy/paros/core/scanner/VariantMultipartFormParametersUnitTest.java @@ -273,6 +273,45 @@ void shouldExtractParametersFromAllPartsEventIfTheyContainRegexChars() { is(equalTo(NameValuePair.TYPE_MULTIPART_DATA_FILE_PARAM))); } + @Test + void shouldExtractParametersFromAllPartsEvenIfSomeAreEmpty() { + // Given + VariantMultipartFormParameters variant = new VariantMultipartFormParameters(); + HttpMessage message = createBaseMessage(); + StringBuilder bodySb = new StringBuilder(); + bodySb.append("--------------------------d74496d66958873e").append(CRLF); + bodySb.append("Content-Disposition: form-data; name=\"param\"").append(CRLF); + bodySb.append("--------------------------d74496d66958873e").append(CRLF); + bodySb.append("Content-Disposition: form-data; name=\"somefile\"; filename=\"file\"") + .append(CRLF); + bodySb.append("Content-Type: ContentType").append(CRLF); + bodySb.append(CRLF); + bodySb.append("filecontent").append(CRLF); + bodySb.append("--------------------------d74496d66958873e--").append(CRLF); + message.setRequestBody(bodySb.toString()); + // When + variant.setMessage(message); + // Then + assertThat(variant.getParamList().get(0).getPosition(), is(equalTo(1))); + assertThat(variant.getParamList().get(0).getName(), is(equalTo("somefile"))); + assertThat(variant.getParamList().get(0).getValue(), is(equalTo("file"))); + assertThat( + variant.getParamList().get(0).getType(), + is(equalTo(NameValuePair.TYPE_MULTIPART_DATA_FILE_NAME))); + assertThat(variant.getParamList().get(1).getPosition(), is(equalTo(2))); + assertThat(variant.getParamList().get(1).getName(), is(equalTo("somefile"))); + assertThat(variant.getParamList().get(1).getValue(), is(equalTo("ContentType"))); + assertThat( + variant.getParamList().get(1).getType(), + is(equalTo(NameValuePair.TYPE_MULTIPART_DATA_FILE_CONTENTTYPE))); + assertThat(variant.getParamList().get(2).getPosition(), is(equalTo(3))); + assertThat(variant.getParamList().get(2).getName(), is(equalTo("somefile"))); + assertThat(variant.getParamList().get(2).getValue(), is(equalTo("filecontent"))); + assertThat( + variant.getParamList().get(2).getType(), + is(equalTo(NameValuePair.TYPE_MULTIPART_DATA_FILE_PARAM))); + } + @Test void shouldInjectParamValueModificationInGeneralParam() { // Given