Close Menu
    DevStackTipsDevStackTips
    • Home
    • News & Updates
      1. Tech & Work
      2. View All

      Jakarta EE 11 Platform launches with modernized Test Compatibility Kit framework

      June 26, 2025

      Can Good UX Protect Older Users From Digital Scams?

      June 25, 2025

      Warp 2.0 evolves terminal experience into an Agentic Development Environment

      June 25, 2025

      Qodo launches CLI agent framework

      June 25, 2025

      My laptop webcam wasn’t cutting it for video calls – then I discovered this accessory

      June 26, 2025

      The top 6 TVs ZDNET readers are buying (no. 1 has the best picture quality we’ve ever seen)

      June 26, 2025

      You should probably delete any sensitive screenshots you have in your phone right now. Here’s why

      June 26, 2025

      Can these $100 Android phones replace my flagship? The result after weeks of testing

      June 26, 2025
    • Development
      1. Algorithms & Data Structures
      2. Artificial Intelligence
      3. Back-End Development
      4. Databases
      5. Front-End Development
      6. Libraries & Frameworks
      7. Machine Learning
      8. Security
      9. Software Engineering
      10. Tools & IDEs
      11. Web Design
      12. Web Development
      13. Web Security
      14. Programming Languages
        • PHP
        • JavaScript
      Featured

      A bot posting the Echo JS RSS feed to Bluesky

      June 26, 2025
      Recent

      A bot posting the Echo JS RSS feed to Bluesky

      June 26, 2025

      Accepting Multiple Parameters in Laravel Commands

      June 26, 2025

      Translate Your App to Other Languages With Laravel Gemini Translator

      June 26, 2025
    • Operating Systems
      1. Windows
      2. Linux
      3. macOS
      Featured

      Distribution Release: deepin 25

      June 26, 2025
      Recent

      Distribution Release: deepin 25

      June 26, 2025

      SpicyPass is a lightweight password manager

      June 26, 2025

      Raspberry Pi 5 Desktop Mini PC: 2.5Gbps Networking

      June 26, 2025
    • Learning Resources
      • Books
      • Cheatsheets
      • Tutorials & Guides
    Home»News & Updates»Classic WTF: NoeTimeToken

    Classic WTF: NoeTimeToken

    June 26, 2025

    Maybe we’ll just try and read a book. That’s a good way to spend your vacation. This can’t possibly go badly! Original —Remy

    Bozen 1 (201)

    “Have you had a chance to look at that JIRA ticket yet?”

    Marge debated pretending she hadn’t seen the Slack message yet—but, if she did, she knew Gary would just walk over to her desk and badger her further. In truth, she didn’t want to look at the ticket: it was a low priority ticket, and worse, it only affected a small fraction of one client’s customers, meaning it was likely to be some weird edge case bug nobody would ever run into again. Maybe if I ignore it long enough, it’ll go away on its own, she thought.

    The client was a bookseller with a small but signifigant-to-them online presence; the software they used to sell books, including your standard e-commerce account functionality, was made by Marge’s company. The bug was somewhere in the password reset feature: some customers, seemingly at random, were unable to use the password reset link the software emailed out.

    Marge pulled up the ticket, looking over the half-hearted triage work that had been done before it landed on her desk to solve. The previous guy had pulled logs and figured out that all the customers who were complaining were using the same ISP based out of Germany. He’d recommended reaching out to them, but had been transferred to another division before he’d gotten around to it.

    When Marge realized that the contact information was all in German, she almost gave up then and there. But with the magic of Google Translate, she managed to get in touch with a representative via email. After a bit of back and forth, she noticed this gem in one of his (translated) replies:

    We want to display mails in our webmail client as close to the original as possible. Since most mails are HTML formatted, the client supports the full HTTP protocol and can display (almost) all HTML tags. Unfortunately, this means that “evil” JS-Content in such mails can do all kinds of stuff in the browser and therefore on the customer’s PC.

    To avert this, all mails are processed by a “SafeBrowsing”-module before they are displayed, to recognize and circumvent such manipulations.
    One of those security measures is the recognition of js-modules that begin with “on…”, since that are mostly js functions that are triggered by some event in the browser. Our “countermeasure” is to just replace “on…” with “no…” before the HTML content is sent to the rendering process.

    Marge frowned at the answer for a bit, something nagging at her mind. “There’s no way,” she murmured as she pulled up the access logs. Sure enough, the url for the reset link was something like https://bookseller.com?oneTimeToken=deadbeef … and the customers in question had accessed https://bookseller.com?noeTimeToken=deadbeef instead.

    A few lines of code and it was resolved: a conditional would check for the incorrect query string parameter and copy the token to the correct query string parameter instead. Marge rolled her eyes, merged her change into the release branch, and finally, at long last, closed that annoying low-priority ticket once and for all.

    [Advertisement]
    Keep the plebs out of prod. Restrict NuGet feed privileges with ProGet. Learn more.

    Source: Read MoreÂ

    Facebook Twitter Reddit Email Copy Link
    Previous ArticleFOSS Weekly #25.26: Torvalds-Gates Showdown, Hyprland Premium, Fedora’s 32-bit Debacle, Xfce Themes and More Linux Stuff
    Next Article CVE-2025-6546 – WordPress Drive Folder Embedder Plugin Stored Cross-Site Scripting Vulnerability

    Related Posts

    News & Updates

    My laptop webcam wasn’t cutting it for video calls – then I discovered this accessory

    June 26, 2025
    News & Updates

    The top 6 TVs ZDNET readers are buying (no. 1 has the best picture quality we’ve ever seen)

    June 26, 2025
    Leave A Reply Cancel Reply

    For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

    Continue Reading

    ¿Por que no pytest no encuentra las pruebas? “collected 0 items “

    Development

    ZSH Quickstart Kit

    Linux

    RT-2: New model translates vision and language into action

    Artificial Intelligence

    Stream A Minecraft Movie at home right now (as long as you’re in the U.S.) and have your own “Chicken Jockey” moment whenever you like

    News & Updates

    Highlights

    Learning Resources

    Linux Data Recovery: How to Salvage Lost or Corrupted Files

    May 1, 2025

    by George Whittaker Data loss is a nightmare for any computer user, and Linux users…

    CVE-2025-44885 – Fortinet Wireless Access Point Stack Overflow Vulnerability

    May 20, 2025

    DOOM: The Dark Ages is available now for Premium Edition owners

    May 15, 2025

    CVE-2025-43559 – ColdFusion Code Injection Vulnerability

    May 13, 2025
    © DevStackTips 2025. All rights reserved.
    • Contact
    • Privacy Policy

    Type above and press Enter to search. Press Esc to cancel.