<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Christophe Canon</title>
    <description>The latest articles on DEV Community by Christophe Canon (@frogames).</description>
    <link>https://dev.to/frogames</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4101348%2F4dc42a12-cda0-4d3a-8cb6-c2e06950975a.jpg</url>
      <title>DEV Community: Christophe Canon</title>
      <link>https://dev.to/frogames</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/frogames"/>
    <language>en</language>
    <item>
      <title>Security Risks of Third-Party URL Encoders in Token Inspection</title>
      <dc:creator>Christophe Canon</dc:creator>
      <pubDate>Thu, 15 Oct 2026 10:00:54 +0000</pubDate>
      <link>https://dev.to/frogames/security-risks-of-third-party-url-encoders-in-token-inspection-3168</link>
      <guid>https://dev.to/frogames/security-risks-of-third-party-url-encoders-in-token-inspection-3168</guid>
      <description>&lt;h2&gt;1. The Problem: Exfiltrating Internal State via URL Decoders&lt;/h2&gt;
&lt;p&gt;When debugging webhooks, OAuth 2.0 callbacks, or deep-link routing parameters, engineers routinely copy encoded strings containing authorization codes, HMAC signatures, or internal microservice endpoints into web-based URL decoders. What appears to be a trivial string transformation often translates to sensitive payload logging on untrusted infrastructure.&lt;/p&gt;
&lt;h2&gt;2. The Deep Dive: How Query Strings Leak to Third Parties&lt;/h2&gt;
&lt;p&gt;Many online URL encoder/decoder utilities perform string processing through server-side HTTP endpoints or rely on heavy client-side analytics bundles. When you paste strings containing parameters such as &lt;code&gt;code_verifier&lt;/code&gt;, &lt;code&gt;id_token&lt;/code&gt;, or signed S3 query parameters into these web forms, your inputs are exposed to several vectors:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Edge &amp;amp; Access Logging:&lt;/strong&gt; Server-side processing logs raw POST bodies or GET query strings in Nginx, Apache, or CDN access logs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DOM Scraping Telemetry:&lt;/strong&gt; Embedded third-party session replays and analytics tags read input values from &lt;code&gt;&amp;lt;textarea&amp;gt;&lt;/code&gt; elements and transmit them to external analytics servers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error Aggregators:&lt;/strong&gt; Unhandled exceptions in foreign JS bundles can capture state payloads and upload them to third-party error-tracking pipelines.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3. The Actionable Advice: Audit Your Encoder's Network Activity&lt;/h2&gt;
&lt;p&gt;Before pasting sensitive parameters into an online decoder, run a quick network check:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open Chrome DevTools (&lt;code&gt;F12&lt;/code&gt; or &lt;code&gt;Cmd+Option+I&lt;/code&gt;) and navigate to the &lt;strong&gt;Network&lt;/strong&gt; tab.&lt;/li&gt;
&lt;li&gt;Paste a test payload containing a dummy parameter: &lt;code&gt;?access_token=test_secret_123&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Inspect the Network log to ensure no outbound &lt;code&gt;FETCH&lt;/code&gt;, &lt;code&gt;XHR&lt;/code&gt;, or analytics &lt;code&gt;POST&lt;/code&gt; requests contain your string payload.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. The Solution: In-Browser Executed URL Manipulation&lt;/h2&gt;
&lt;p&gt;At &lt;strong&gt;Pure Client Tools&lt;/strong&gt;, URL encoding and decoding rely strictly on standard browser primitives like &lt;code&gt;decodeURIComponent()&lt;/code&gt; executed within your local JavaScript runtime. No byte of data leaves your browser isolate.&lt;/p&gt;
&lt;p&gt;For workflow integration without tab context switching, install the &lt;strong&gt;Pure Client Tools Chrome Extension&lt;/strong&gt;. It provides zero-latency URL manipulation directly in your browser's execution context, ensuring authorization tokens, callback states, and internal API routes remain strictly confidential.&lt;/p&gt;





&lt;p&gt;&lt;em&gt;This zero-BS technical tip was originally published on &lt;a href="https://pureclienttools.com/blog/security-risks-third-party-url-encoders" rel="noopener noreferrer"&gt;Pure Client Tools&lt;/a&gt;.&lt;/em&gt; 🛡️&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Exposing Enterprise Data via Web-Based CSV and XML Converters</title>
      <dc:creator>Christophe Canon</dc:creator>
      <pubDate>Tue, 15 Sep 2026 10:00:57 +0000</pubDate>
      <link>https://dev.to/frogames/exposing-enterprise-data-via-web-based-csv-and-xml-converters-1fg4</link>
      <guid>https://dev.to/frogames/exposing-enterprise-data-via-web-based-csv-and-xml-converters-1fg4</guid>
      <description>&lt;h2&gt;The Problem&lt;/h2&gt;
&lt;p&gt;During routine debugging or data transformation, software engineers frequently convert raw data exports—such as CSVs, XML feeds, or log dumps—into structured JSON. A common workflow involves pasting these payloads into quick web-based conversion utilities. However, most third-party formatters process these inputs on remote application servers, turning simple structural conversions into silent data leaks.&lt;/p&gt;
&lt;h2&gt;The Deep Dive&lt;/h2&gt;
&lt;p&gt;When you submit a dataset to a standard online converter, the payload is transmitted over the network via an HTTP POST request. On the backend, server-side runtimes like Node.js, Python, or PHP parse the payload into memory, where it may be buffered, logged, or written to transient disk storage. Web servers like Nginx or Apache routinely capture request metadata, and application APM tools (e.g., Datadog, Sentry) often log unredacted request bodies on failure. If your CSV or XML file contains user PII, internal identifiers, or sensitive financial metrics, you are effectively streaming proprietary data to an untrusted third party.&lt;/p&gt;
&lt;h2&gt;The Actionable Advice&lt;/h2&gt;
&lt;p&gt;You can quickly evaluate the data flow of your current conversion tools using your browser's Developer Tools:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open the &lt;strong&gt;Network&lt;/strong&gt; tab (F12 or Cmd+Option+I).&lt;/li&gt;
&lt;li&gt;Filter by &lt;code&gt;Fetch/XHR&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Paste a sample string into the tool and initiate the conversion.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you observe an outbound network request carrying your input string in the request payload, the tool relies on server-side execution and fails basic zero-trust security standards.&lt;/p&gt;
&lt;h2&gt;The Solution&lt;/h2&gt;
&lt;p&gt;Tabular and document parsing engines do not require backend infrastructure. Modern V8 and WebAssembly engines can parse megabytes of raw text into structured JSON arrays in milliseconds using local browser memory. Pure Client Tools offers a dedicated CSV and XML Converter that performs 100% of its parsing locally on the client side. No data is ever transmitted over the wire. To convert datasets securely without leaving your active tab, install the Pure Client Tools Chrome Extension for air-gapped, zero-latency data transformations.&lt;/p&gt;





&lt;p&gt;&lt;em&gt;This zero-BS technical tip was originally published on &lt;a href="https://pureclienttools.com/blog/exposing-enterprise-data-via-web-based-csv-xml-converters" rel="noopener noreferrer"&gt;Pure Client Tools&lt;/a&gt;.&lt;/em&gt; 🛡️&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Demystifying Unix Cron Expressions: A Complete Beginner's Guide</title>
      <dc:creator>Christophe Canon</dc:creator>
      <pubDate>Sun, 30 Aug 2026 12:22:53 +0000</pubDate>
      <link>https://dev.to/frogames/demystifying-unix-cron-expressions-a-complete-beginners-guide-582k</link>
      <guid>https://dev.to/frogames/demystifying-unix-cron-expressions-a-complete-beginners-guide-582k</guid>
      <description>&lt;p&gt;Master the standard 5-part crontab syntax with practical examples, special characters (*, /, -, ,), and best practices for scheduled server jobs.&lt;/p&gt;

&lt;p&gt;Automating recurring tasks—such as daily database backups, hourly cache clearing, or weekly newsletter dispatches—is a staple of backend engineering. On Unix and Linux systems, the cron daemon is the undisputed standard.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The 5-Part Cron Syntax Anatomy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A standard crontab schedule entry consists of five positional fields followed by the command to execute:&lt;/p&gt;

&lt;p&gt;┌───────────── Minute (0 - 59)&lt;br&gt;
│ ┌───────────── Hour (0 - 23)&lt;br&gt;
│ │ ┌───────────── Day of Month (1 - 31)&lt;br&gt;
│ │ │ ┌───────────── Month (1 - 12 or JAN - DEC)&lt;br&gt;
│ │ │ │ ┌───────────── Day of Week (0 - 6 or SUN - SAT)&lt;br&gt;
│ │ │ │ │&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;* * * * command_to_execute&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Understanding Special Characters&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;(Asterisk / Wildcard): Matches every possible value in the field (e.g., every minute).
, (Comma / List): Specifies a discrete list of values (e.g., 1,15,30).&lt;/li&gt;
&lt;li&gt;(Hyphen / Range): Defines an inclusive range of values (e.g., 9-17 for 9am through 5pm).
/ (Slash / Step): Specifies increments (e.g., */15 in the minute field means every 15 minutes).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Common Examples in Production&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Expression  Plain English Meaning&lt;br&gt;
0 0 * * *   Every midnight (00:00)&lt;br&gt;
*/15 * * * *    Every 15 minutes&lt;br&gt;
0 9-17 * * 1-5  Every hour from 9am to 5pm, Monday to Friday&lt;br&gt;
Need to test or verify a complex cron string before deploying to production? Use our &lt;a href="https://pureclienttools.com/cron-parser" rel="noopener noreferrer"&gt;interactive Cron Expression Parser&lt;/a&gt; to see exact upcoming execution times in your local timezone.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
