{"id":23591,"date":"2026-08-23T23:20:28","date_gmt":"2026-08-23T21:20:28","guid":{"rendered":"https:\/\/www.salvis.com\/blog\/?p=23591"},"modified":"2026-08-23T23:20:31","modified_gmt":"2026-08-23T21:20:31","slug":"the-checkbox-that-disables-tls","status":"publish","type":"post","link":"https:\/\/www.salvis.com\/blog\/2026\/08\/23\/the-checkbox-that-disables-tls\/","title":{"rendered":"The Checkbox That Disables TLS"},"content":{"rendered":"\n<h2 id=\"introduction\" class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The dbLinter clients include a new setting named <code>Allow Insecure TLS<\/code>. It is disabled by default. As a result, all REST API calls verify the TLS certificate and hostname. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The setting allows dbLinter to work in organisations that inspect TLS traffic using tools such as <a href=\"https:\/\/help.zscaler.com\/zia\/understanding-ssltls-inspection\" target=\"_blank\" rel=\"noreferrer noopener\">Zscaler<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In larger organisations, arranging an inspection bypass can be cumbersome and is often too much effort for an ad-hoc trial of dbLinter. The checkbox provides a temporary workaround and should be enabled only on a trusted network.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, allowing insecure TLS on untrusted networks, such as open Wi-Fi without client isolation, can let an attacker redirect traffic through their own machine using techniques like <a href=\"https:\/\/en.wikipedia.org\/wiki\/ARP_spoofing\" target=\"_blank\" rel=\"noreferrer noopener\">ARP spoofing<\/a>. The attacker can also operate the access point themselves, for example, by creating a rogue Wi-Fi hotspot.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this blog post, I demonstrate the effect of this checkbox.<\/p>\n\n\n\n<h2 id=\"allow-insecure-tls\" class=\"wp-block-heading\">Allow Insecure TLS<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The latest version of dbLinter for VS Code has a checkbox that disables certificate and hostname verification.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/allow-insecure-tls-checkbox.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"833\" src=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/allow-insecure-tls-checkbox-1024x833.png\" alt=\"Allow Insecure TLS Checkbox in VS Code\" class=\"wp-image-23595\" srcset=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/allow-insecure-tls-checkbox-1024x833.png 1024w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/allow-insecure-tls-checkbox-300x244.png 300w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/allow-insecure-tls-checkbox-768x624.png 768w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/allow-insecure-tls-checkbox-1536x1249.png 1536w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/allow-insecure-tls-checkbox-2048x1665.png 2048w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/allow-insecure-tls-checkbox-92x75.png 92w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/allow-insecure-tls-checkbox-480x390.png 480w\" sizes=\"auto, (max-width:767px) 480px, (max-width:1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">dbLinter&#8217;s <code>allowInsecureTls<\/code> setting is nothing unusual. Many common tools offer a similar option, including curl (<code>--insecure<\/code>), wget (<code>--no-check-certificate<\/code>), and git (<code>--config http.sslVerify false<\/code>).<\/p>\n\n\n\n<h2 id=\"installing-and-configuring-a-proxy\" class=\"wp-block-heading\">Installing and Configuring a Proxy<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I run this demo on macOS 26.6.2.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A simple proxy is <a href=\"https:\/\/www.mitmproxy.org\/\" data-type=\"link\" data-id=\"https:\/\/www.mitmproxy.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">mitmweb<\/a>. We can install and configure it as follows:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>brew install mitmproxy\nnetworksetup -setsecurewebproxy \"Wi-Fi\" 127.0.0.1 8090\nmitmweb --listen-port 8090 --web-port 8091 --allow-hosts '^api\\.dblinter\\.app'<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #DCDCAA\">brew<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">install<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">mitmproxy<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">networksetup<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">-setsecurewebproxy<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;Wi-Fi&quot;<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">127.0<\/span><span style=\"color: #CE9178\">.0.1<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">8090<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">mitmweb<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--listen-port<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">8090<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--web-port<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">8091<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">--allow-hosts<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&#39;^api\\.dblinter\\.app&#39;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>&#91;20:36:20.907&#93; HTTP(S) proxy listening at *:8090.\n&#91;20:36:20.908&#93; Web server listening at http:\/\/127.0.0.1:8091\/?token=f83b02032aaaccd282ad3925a484fcdb<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D4D4D4\">&#91;20:36:20.907&#93; HTTP(S) proxy listening at *:8090.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">&#91;20:36:20.908&#93; Web server listening at http:\/\/127.0.0.1:8091\/?token=f83b02032aaaccd282ad3925a484fcdb<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>mitmweb<\/code> command starts the proxy and listens on port 8090 for TLS traffic between localhost and <code>api.dblinter.app<\/code>. All other traffic is bypassed. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>mitmweb<\/code> proxy also opens the following web page:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-start.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"201\" src=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-start-1024x201.png\" alt=\"mitmproxy after start up\" class=\"wp-image-23617\" srcset=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-start-1024x201.png 1024w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-start-300x59.png 300w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-start-768x150.png 768w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-start-150x29.png 150w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-start-480x94.png 480w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-start.png 1281w\" sizes=\"auto, (max-width:767px) 480px, (max-width:1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h2 id=\"intercepting-traffic\" class=\"wp-block-heading\">Intercepting Traffic<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To generate traffic, we launch VS Code and open a SQL file. This produces the following in the output panel for dbLinter:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-highlight-color:rgba(234, 191, 191, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>2026-08-23 20:37:43.216 &#91;Info &#93; Starting dbLinter Language Server.\n2026-08-23 20:37:43.539 &#91;Info &#93; connect.\n2026-08-23 20:37:43.611 &#91;Info &#93; initialize VSCode 1.10.0.\n2026-08-23 20:37:43.646 &#91;Info &#93; didOpen file:\/\/\/...\/dbl_client_types.sql.\n2026-08-23 20:37:43.651 &#91;Info &#93; AntlrCacheCoordinator initialized with parallel degree 1 and clearCacheThreshold 2048 of 16384 MB.\n2026-08-23 20:37:43.671 &#91;Warn &#93; TLS certificate and hostname verification are disabled for dbLinter repository API calls. Use this temporary workaround only when TLS interception cannot be bypassed.\n2026-08-23 20:37:45.533 &#91;Info &#93; Configuration dbLinter of tenant Grisselbav loaded with 294 check methods.\n2026-08-23 20:37:45.534 &#91;Info &#93; didChangeConfiguration.\n2026-08-23 20:37:45.703 &#91;Info &#93; tests returned 43 tests.\n2026-08-23 20:37:45.796 &#91;Info &#93; parseAndCheck file:\/\/\/...\/dbl_client_types.sql.\n2026-08-23 20:37:45.910 &#91;Info &#93; hasFeature Config returned true.\n2026-08-23 20:37:46.286 &#91;Info &#93; parseAndCheck completed in 0.489 sec including 0.052 sec for checks.\n2026-08-23 20:37:46.289 &#91;Info &#93; diagnostics for file:\/\/\/...\/dbl_client_types.sql with 2 issues.<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D4D4D4\">2026-08-23 20:37:43.216 &#91;Info &#93; Starting dbLinter Language Server.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">2026-08-23 20:37:43.539 &#91;Info &#93; connect.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">2026-08-23 20:37:43.611 &#91;Info &#93; initialize VSCode 1.10.0.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">2026-08-23 20:37:43.646 &#91;Info &#93; didOpen file:\/\/\/...\/dbl_client_types.sql.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">2026-08-23 20:37:43.651 &#91;Info &#93; AntlrCacheCoordinator initialized with parallel degree 1 and clearCacheThreshold 2048 of 16384 MB.<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #D4D4D4\">2026-08-23 20:37:43.671 &#91;Warn &#93; TLS certificate and hostname verification are disabled for dbLinter repository API calls. Use this temporary workaround only when TLS interception cannot be bypassed.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">2026-08-23 20:37:45.533 &#91;Info &#93; Configuration dbLinter of tenant Grisselbav loaded with 294 check methods.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">2026-08-23 20:37:45.534 &#91;Info &#93; didChangeConfiguration.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">2026-08-23 20:37:45.703 &#91;Info &#93; tests returned 43 tests.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">2026-08-23 20:37:45.796 &#91;Info &#93; parseAndCheck file:\/\/\/...\/dbl_client_types.sql.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">2026-08-23 20:37:45.910 &#91;Info &#93; hasFeature Config returned true.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">2026-08-23 20:37:46.286 &#91;Info &#93; parseAndCheck completed in 0.489 sec including 0.052 sec for checks.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">2026-08-23 20:37:46.289 &#91;Info &#93; diagnostics for file:\/\/\/...\/dbl_client_types.sql with 2 issues.<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The log contains a warning that TLS certificate and hostname verification are disabled.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">dbLinter analyses SQL and APEXlang files locally. The captured traffic lets us verify what is sent to the dbLinter API. It contains the API key and session data, but not the contents of the analysed files. The source code therefore remains within the local network.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-request-scaled.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"538\" src=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-request-1024x538.png\" alt=\"mitmproxy request message\" class=\"wp-image-23618\" srcset=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-request-1024x538.png 1024w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-request-300x158.png 300w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-request-768x403.png 768w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-request-1536x807.png 1536w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-request-2048x1076.png 2048w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-request-143x75.png 143w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-request-480x252.png 480w\" sizes=\"auto, (max-width:767px) 480px, (max-width:1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">It goes without saying that it is not good to expose the API key in plain text.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The proxy also shows the decrypted response:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-response-scaled.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"292\" src=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-response-1024x292.png\" alt=\"mitmproxy response message\" class=\"wp-image-23619\" srcset=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-response-1024x292.png 1024w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-response-300x85.png 300w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-response-768x219.png 768w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-response-1536x438.png 1536w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-response-2048x584.png 2048w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-response-150x43.png 150w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/mitmproxy-response-480x137.png 480w\" sizes=\"auto, (max-width:767px) 480px, (max-width:1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The session object in the response contains a signature. The client can therefore detect changes to the signed content, including the validators. This prevents the proxy from silently modifying the validators or injecting malicious code. However, the signature does not prevent the proxy from reading the request and response.<\/p>\n\n\n\n<h2 id=\"enforce-tls-verification\" class=\"wp-block-heading\">Enforce TLS Verification<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Now let&#8217;s uncheck the <code>Allow Insecure TLS<\/code> checkbox and execute the <code>Reload Window<\/code> command. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/image-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"191\" src=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/image-2-1024x191.png\" alt=\"disallow insecure TLS in VS Code\" class=\"wp-image-23613\" srcset=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/image-2-1024x191.png 1024w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/image-2-300x56.png 300w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/image-2-768x143.png 768w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/image-2-150x28.png 150w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/image-2-480x89.png 480w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/image-2.png 1354w\" sizes=\"auto, (max-width:767px) 480px, (max-width:1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This produces the following in the output panel for dbLinter:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-highlight-color:rgba(234, 191, 191, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>2026-08-23 20:52:37.281 &#91;Info &#93; Starting dbLinter Language Server.\n2026-08-23 20:52:37.550 &#91;Info &#93; connect.\n2026-08-23 20:52:37.606 &#91;Info &#93; initialize VSCode 1.10.0.\n2026-08-23 20:52:38.047 &#91;Info &#93; didOpen file:\/\/\/...\/dbl_client_types.sql.\n2026-08-23 20:52:38.049 &#91;Info &#93; AntlrCacheCoordinator initialized with parallel degree 1 and clearCacheThreshold 2048 of 16384 MB.\n2026-08-23 20:52:38.375 &#91;Error&#93; Failed to load configuration.\n\norg.springframework.web.client.ResourceAccessException: I\/O error on POST request for \"https:\/\/api.dblinter.app\/api\/client-session\/open\": (certificate_unknown) PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D4D4D4\">2026-08-23 20:52:37.281 &#91;Info &#93; Starting dbLinter Language Server.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">2026-08-23 20:52:37.550 &#91;Info &#93; connect.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">2026-08-23 20:52:37.606 &#91;Info &#93; initialize VSCode 1.10.0.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">2026-08-23 20:52:38.047 &#91;Info &#93; didOpen file:\/\/\/...\/dbl_client_types.sql.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">2026-08-23 20:52:38.049 &#91;Info &#93; AntlrCacheCoordinator initialized with parallel degree 1 and clearCacheThreshold 2048 of 16384 MB.<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #D4D4D4\">2026-08-23 20:52:38.375 &#91;Error&#93; Failed to load configuration.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\"><\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #D4D4D4\">org.springframework.web.client.ResourceAccessException: I\/O error on POST request for &quot;https:\/\/api.dblinter.app\/api\/client-session\/open&quot;: (certificate_unknown) PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The proxy presented a certificate for <code>api.dblinter.app<\/code> which was not issued by a trusted certification authority.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The proxy console therefore shows the following log entry:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-width:calc(1 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(234, 191, 191, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>&#91;20:52:38.217&#93;&#91;127.0.0.1:60439&#93; server connect api.dblinter.app:443 (91.98.90.2:443)\n&#91;20:52:38.360&#93;&#91;127.0.0.1:60441&#93; client connect\n&#91;20:52:38.375&#93;&#91;127.0.0.1:60439&#93; Client TLS handshake failed. The client does not trust the proxy's certificate for api.dblinter.app (OpenSSL Error(&#91;('SSL routines', '', 'ssl\/tls alert certificate unknown')&#93;))\n&#91;20:52:38.377&#93;&#91;127.0.0.1:60439&#93; client disconnect\n&#91;20:52:38.380&#93;&#91;127.0.0.1:60439&#93; server disconnect api.dblinter.app:443 (91.98.90.2:443)<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D4D4D4\">&#91;20:52:38.217&#93;&#91;127.0.0.1:60439&#93; server connect api.dblinter.app:443 (91.98.90.2:443)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">&#91;20:52:38.360&#93;&#91;127.0.0.1:60441&#93; client connect<\/span><\/span>\n<span class=\"line cbp-line-highlight\"><span style=\"color: #D4D4D4\">&#91;20:52:38.375&#93;&#91;127.0.0.1:60439&#93; Client TLS handshake failed. The client does not trust the proxy&#39;s certificate for api.dblinter.app (OpenSSL Error(&#91;(&#39;SSL routines&#39;, &#39;&#39;, &#39;ssl\/tls alert certificate unknown&#39;)&#93;))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">&#91;20:52:38.377&#93;&#91;127.0.0.1:60439&#93; client disconnect<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">&#91;20:52:38.380&#93;&#91;127.0.0.1:60439&#93; server disconnect api.dblinter.app:443 (91.98.90.2:443)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The REST API call failed before the proxy received the HTTP request. Therefore, the API key and other request data were not exposed.<\/p>\n\n\n\n<h2 id=\"reset-network-configuration-and-unistall-proxy\" class=\"wp-block-heading\">Reset Network Configuration and Uninstall Proxy<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s stop the proxy by pressing Ctrl-C in the terminal window running it. Then run the following:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>networksetup -setsecurewebproxystate \"Wi-Fi\" off\nbrew uninstall mitmproxy\nrm -rf ~\/.mitmproxy<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #DCDCAA\">networksetup<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">-setsecurewebproxystate<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;Wi-Fi&quot;<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">off<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">brew<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">uninstall<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">mitmproxy<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">rm<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">-rf<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">~\/.mitmproxy<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 id=\"conclusion\" class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>Allow Insecure TLS<\/code> option solves a practical problem in environments where TLS inspection cannot easily be bypassed. However, it disables certificate and hostname verification. A proxy or an attacker controlling the network can then read requests, including the API key.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The captured traffic also confirms that dbLinter analyses SQL and APEXlang files locally. Signed server responses protect the downloaded configuration from manipulation, but they do not protect confidential request data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore, enable this option only as a temporary workaround on a trusted network. The preferred solution is to configure a TLS inspection bypass. Disable the option again as soon as possible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction The dbLinter clients include a new setting named Allow Insecure TLS. It is disabled by default. As a result, all REST API calls verify the TLS certificate and hostname. The setting allows dbLinter to work in organisations that inspect TLS traffic using tools such as Zscaler. In larger organisations, arranging an<span class=\"excerpt-hellip\"> [\u2026]<\/span><\/p>\n","protected":false},"author":1,"featured_media":23636,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[154,86,151,13,85],"class_list":["post-23591","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oracle","tag-apexlang","tag-code-analysis","tag-dblinter","tag-plsql","tag-sql"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>The Checkbox That Disables TLS - Philipp Salvisberg&#039;s Blog<\/title>\n<meta name=\"description\" content=\"See what happens when Allow Insecure TLS is enabled in dbLinter, what a proxy can read, and why analysed source code remains local.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.salvis.com\/blog\/2026\/08\/23\/the-checkbox-that-disables-tls\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Checkbox That Disables TLS - Philipp Salvisberg&#039;s Blog\" \/>\n<meta property=\"og:description\" content=\"See what happens when Allow Insecure TLS is enabled in dbLinter, what a proxy can read, and why analysed source code remains local.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.salvis.com\/blog\/2026\/08\/23\/the-checkbox-that-disables-tls\/\" \/>\n<meta property=\"og:site_name\" content=\"Philipp Salvisberg&#039;s Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-23T21:20:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-23T21:20:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/the-checkbox-that-disables-tls.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1672\" \/>\n\t<meta property=\"og:image:height\" content=\"941\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Philipp Salvisberg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@phsalvisberg\" \/>\n<meta name=\"twitter:site\" content=\"@phsalvisberg\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Philipp Salvisberg\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/08\\\/23\\\/the-checkbox-that-disables-tls\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/08\\\/23\\\/the-checkbox-that-disables-tls\\\/\"},\"author\":{\"name\":\"Philipp Salvisberg\",\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/#\\\/schema\\\/person\\\/34352245c48678b1a5a05d4bc1339515\"},\"headline\":\"The Checkbox That Disables TLS\",\"datePublished\":\"2026-08-23T21:20:28+00:00\",\"dateModified\":\"2026-08-23T21:20:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/08\\\/23\\\/the-checkbox-that-disables-tls\\\/\"},\"wordCount\":582,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/#\\\/schema\\\/person\\\/34352245c48678b1a5a05d4bc1339515\"},\"image\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/08\\\/23\\\/the-checkbox-that-disables-tls\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/the-checkbox-that-disables-tls.png\",\"keywords\":[\"APEXlang\",\"Code Analysis\",\"dbLinter\",\"PL\\\/SQL\",\"SQL\"],\"articleSection\":[\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/08\\\/23\\\/the-checkbox-that-disables-tls\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/08\\\/23\\\/the-checkbox-that-disables-tls\\\/\",\"url\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/08\\\/23\\\/the-checkbox-that-disables-tls\\\/\",\"name\":\"The Checkbox That Disables TLS - Philipp Salvisberg&#039;s Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/08\\\/23\\\/the-checkbox-that-disables-tls\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/08\\\/23\\\/the-checkbox-that-disables-tls\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/the-checkbox-that-disables-tls.png\",\"datePublished\":\"2026-08-23T21:20:28+00:00\",\"dateModified\":\"2026-08-23T21:20:31+00:00\",\"description\":\"See what happens when Allow Insecure TLS is enabled in dbLinter, what a proxy can read, and why analysed source code remains local.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/08\\\/23\\\/the-checkbox-that-disables-tls\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/08\\\/23\\\/the-checkbox-that-disables-tls\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/08\\\/23\\\/the-checkbox-that-disables-tls\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/the-checkbox-that-disables-tls.png\",\"contentUrl\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/the-checkbox-that-disables-tls.png\",\"width\":1672,\"height\":941},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2026\\\/08\\\/23\\\/the-checkbox-that-disables-tls\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Checkbox That Disables TLS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/\",\"name\":\"Philipp Salvisberg&#039;s Blog\",\"description\":\"Database-centric development\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/#\\\/schema\\\/person\\\/34352245c48678b1a5a05d4bc1339515\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/#\\\/schema\\\/person\\\/34352245c48678b1a5a05d4bc1339515\",\"name\":\"Philipp Salvisberg\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2010\\\/11\\\/phs_trivadis4.jpg\",\"url\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2010\\\/11\\\/phs_trivadis4.jpg\",\"contentUrl\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2010\\\/11\\\/phs_trivadis4.jpg\",\"width\":400,\"height\":400,\"caption\":\"Philipp Salvisberg\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2010\\\/11\\\/phs_trivadis4.jpg\"},\"sameAs\":[\"http:\\\/\\\/www.salvis.com\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Checkbox That Disables TLS - Philipp Salvisberg&#039;s Blog","description":"See what happens when Allow Insecure TLS is enabled in dbLinter, what a proxy can read, and why analysed source code remains local.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.salvis.com\/blog\/2026\/08\/23\/the-checkbox-that-disables-tls\/","og_locale":"en_US","og_type":"article","og_title":"The Checkbox That Disables TLS - Philipp Salvisberg&#039;s Blog","og_description":"See what happens when Allow Insecure TLS is enabled in dbLinter, what a proxy can read, and why analysed source code remains local.","og_url":"https:\/\/www.salvis.com\/blog\/2026\/08\/23\/the-checkbox-that-disables-tls\/","og_site_name":"Philipp Salvisberg&#039;s Blog","article_published_time":"2026-08-23T21:20:28+00:00","article_modified_time":"2026-08-23T21:20:31+00:00","og_image":[{"width":1672,"height":941,"url":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/the-checkbox-that-disables-tls.png","type":"image\/png"}],"author":"Philipp Salvisberg","twitter_card":"summary_large_image","twitter_creator":"@phsalvisberg","twitter_site":"@phsalvisberg","twitter_misc":{"Written by":"Philipp Salvisberg","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.salvis.com\/blog\/2026\/08\/23\/the-checkbox-that-disables-tls\/#article","isPartOf":{"@id":"https:\/\/www.salvis.com\/blog\/2026\/08\/23\/the-checkbox-that-disables-tls\/"},"author":{"name":"Philipp Salvisberg","@id":"https:\/\/www.salvis.com\/blog\/#\/schema\/person\/34352245c48678b1a5a05d4bc1339515"},"headline":"The Checkbox That Disables TLS","datePublished":"2026-08-23T21:20:28+00:00","dateModified":"2026-08-23T21:20:31+00:00","mainEntityOfPage":{"@id":"https:\/\/www.salvis.com\/blog\/2026\/08\/23\/the-checkbox-that-disables-tls\/"},"wordCount":582,"commentCount":0,"publisher":{"@id":"https:\/\/www.salvis.com\/blog\/#\/schema\/person\/34352245c48678b1a5a05d4bc1339515"},"image":{"@id":"https:\/\/www.salvis.com\/blog\/2026\/08\/23\/the-checkbox-that-disables-tls\/#primaryimage"},"thumbnailUrl":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/the-checkbox-that-disables-tls.png","keywords":["APEXlang","Code Analysis","dbLinter","PL\/SQL","SQL"],"articleSection":["Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.salvis.com\/blog\/2026\/08\/23\/the-checkbox-that-disables-tls\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.salvis.com\/blog\/2026\/08\/23\/the-checkbox-that-disables-tls\/","url":"https:\/\/www.salvis.com\/blog\/2026\/08\/23\/the-checkbox-that-disables-tls\/","name":"The Checkbox That Disables TLS - Philipp Salvisberg&#039;s Blog","isPartOf":{"@id":"https:\/\/www.salvis.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.salvis.com\/blog\/2026\/08\/23\/the-checkbox-that-disables-tls\/#primaryimage"},"image":{"@id":"https:\/\/www.salvis.com\/blog\/2026\/08\/23\/the-checkbox-that-disables-tls\/#primaryimage"},"thumbnailUrl":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/the-checkbox-that-disables-tls.png","datePublished":"2026-08-23T21:20:28+00:00","dateModified":"2026-08-23T21:20:31+00:00","description":"See what happens when Allow Insecure TLS is enabled in dbLinter, what a proxy can read, and why analysed source code remains local.","breadcrumb":{"@id":"https:\/\/www.salvis.com\/blog\/2026\/08\/23\/the-checkbox-that-disables-tls\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.salvis.com\/blog\/2026\/08\/23\/the-checkbox-that-disables-tls\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.salvis.com\/blog\/2026\/08\/23\/the-checkbox-that-disables-tls\/#primaryimage","url":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/the-checkbox-that-disables-tls.png","contentUrl":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2026\/08\/the-checkbox-that-disables-tls.png","width":1672,"height":941},{"@type":"BreadcrumbList","@id":"https:\/\/www.salvis.com\/blog\/2026\/08\/23\/the-checkbox-that-disables-tls\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.salvis.com\/blog\/"},{"@type":"ListItem","position":2,"name":"The Checkbox That Disables TLS"}]},{"@type":"WebSite","@id":"https:\/\/www.salvis.com\/blog\/#website","url":"https:\/\/www.salvis.com\/blog\/","name":"Philipp Salvisberg&#039;s Blog","description":"Database-centric development","publisher":{"@id":"https:\/\/www.salvis.com\/blog\/#\/schema\/person\/34352245c48678b1a5a05d4bc1339515"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.salvis.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.salvis.com\/blog\/#\/schema\/person\/34352245c48678b1a5a05d4bc1339515","name":"Philipp Salvisberg","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2010\/11\/phs_trivadis4.jpg","url":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2010\/11\/phs_trivadis4.jpg","contentUrl":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2010\/11\/phs_trivadis4.jpg","width":400,"height":400,"caption":"Philipp Salvisberg"},"logo":{"@id":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2010\/11\/phs_trivadis4.jpg"},"sameAs":["http:\/\/www.salvis.com\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/posts\/23591","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/comments?post=23591"}],"version-history":[{"count":30,"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/posts\/23591\/revisions"}],"predecessor-version":[{"id":23642,"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/posts\/23591\/revisions\/23642"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/media\/23636"}],"wp:attachment":[{"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/media?parent=23591"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/categories?post=23591"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/tags?post=23591"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}