<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: RagingCactus</title><link>https://news.ycombinator.com/user?id=RagingCactus</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 28 Apr 2026 16:20:32 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=RagingCactus" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by RagingCactus in "GTFOBins"]]></title><description><![CDATA[
<p>Seeing the confusion in the comments I want to provide some examples of situations where this might come up in a security or CTF context:<p>* You have a restricted shell or other way to execute a restricted set of commands or binaries, often with arbitrary parameters. You can use GTFOBins in interesting ways to read files, write files, or even execute commands and ultimately break out of your restricted context into a shell.<p>* Someone allowed sudo access or set the SUID bit on a GTFOBin. Using these tricks, you may be able to read or write sensitive files or execute privileged commands in a way the person configuring sudo did not know about.</p>
]]></description><pubDate>Tue, 28 Apr 2026 07:20:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=47931364</link><dc:creator>RagingCactus</dc:creator><comments>https://news.ycombinator.com/item?id=47931364</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47931364</guid></item><item><title><![CDATA[New comment by RagingCactus in "Cloudflare outage on November 18, 2025 post mortem"]]></title><description><![CDATA[
<p>Lots of people here are (perhaps rightfully) pointing to the unwrap() call being an issue. That might be true, but to me the fact that a reasonably "clean" panic at a defined line of code was not quickly picked up in any error monitoring system sounds just as important to investigate.<p>Assuming something similar to Sentry would be in use, it should clearly pick up the many process crashes that start occurring right as the downtime starts. And the well defined clean crashes should in theory also stand out against all the random errors that start occuring all over the system as it begins to go down, precisely because it's always failing at the exact same point.</p>
]]></description><pubDate>Wed, 19 Nov 2025 00:42:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=45974353</link><dc:creator>RagingCactus</dc:creator><comments>https://news.ycombinator.com/item?id=45974353</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45974353</guid></item><item><title><![CDATA[New comment by RagingCactus in "A modern approach to preventing CSRF in Go"]]></title><description><![CDATA[
<p>Yes, you're definitely right that there are edge cases and I was simplifying a bit. Notably, it's called SameSite, NOT SameOrigin. Depending on your application that might matter a lot.<p>In practice, SameSite=Lax is already very effective in preventing _most_ CSRF attacks. However, I 100% agree with you that adding a second defense mechanism (such as the Sec header, a custom "Protect-Me-From-Csrf: true" header, or if you have a really sensitive use case, cryptographically secure CSRF tokens) is a very good idea.</p>
]]></description><pubDate>Wed, 15 Oct 2025 10:33:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=45590389</link><dc:creator>RagingCactus</dc:creator><comments>https://news.ycombinator.com/item?id=45590389</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45590389</guid></item><item><title><![CDATA[New comment by RagingCactus in "A modern approach to preventing CSRF in Go"]]></title><description><![CDATA[
<p>I work as a pentester. CSRF is not a problem of the user proving their identity, but instead a problem of the browser as a confused deputy. CSRF makes it so the browser proves the identity of the user to the application server without the user's consent.<p>You do need a rigid authentication and authorization scheme just as you described. However, this is completely orthogonal to CSRF issues. Some authentication schemes (such as bearer tokens in the authorization header) are not susceptible to CSRF, some are (such as cookies). The reason for that is just how they are implemented in browsers.<p>I don't mean to be rude, but I urge you to follow the recommendation of the other commenters and read up on what CSRF is and why it is not the same issue as authentication in general.<p>Clearly knowledgeable people not knowing about the intricacies of (web) security is actually an issue that comes up a lot in my pentesting when I try to explain issues to customers or their developers. While they often know a lot about programming or technology, they frequently don't know enough about (web) security to conceptualize the attack vector, even after we explain it. Web security is a little special because of lots of little details in browser behavior. You truly need to engage your suspension of disbelief sometimes and just accept how things are to navigate that space. And on top of that, things tend to change a lot over the years.</p>
]]></description><pubDate>Wed, 15 Oct 2025 10:15:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=45590278</link><dc:creator>RagingCactus</dc:creator><comments>https://news.ycombinator.com/item?id=45590278</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45590278</guid></item><item><title><![CDATA[New comment by RagingCactus in "A modern approach to preventing CSRF in Go"]]></title><description><![CDATA[
<p>The SameSite cookie flag is effective against CSRF when you put it on your session cookie, it's one of its main use cases. See <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Set-Cookie#samesitesamesite-value" rel="nofollow">https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/...</a> for more information.<p>SameSite=Lax (default for legacy sites in Chrome) will protect you against POST-based CSRF.<p>SameSite=Strict will also protect against GET-based CSRF (which shouldn't really exist as GET is not a safe method that should be allowed to trigger state changes, but in practice some applications do it). It does, however, also make it so users clicking a link to your page might not be logged in once they arrive unless you implement other measures.<p>In practice, SameSite=Lax is appropriate and just works for most sites. A notable exception are POST-based SAML SSO flows, which might require a SameSite=None cookie just for the login flow.</p>
]]></description><pubDate>Wed, 15 Oct 2025 10:05:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=45590206</link><dc:creator>RagingCactus</dc:creator><comments>https://news.ycombinator.com/item?id=45590206</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45590206</guid></item><item><title><![CDATA[New comment by RagingCactus in "A proposal to restrict sites from accessing a users’ local network"]]></title><description><![CDATA[
<p>I don't believe this is true, as <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Native_messaging" rel="nofollow">https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Web...</a> exists. It does need an extension to be installed, but I think that's fair in your comparison with NPAPI.</p>
]]></description><pubDate>Wed, 04 Jun 2025 20:09:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=44184945</link><dc:creator>RagingCactus</dc:creator><comments>https://news.ycombinator.com/item?id=44184945</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44184945</guid></item><item><title><![CDATA[New comment by RagingCactus in "VS Code Material Theme Was Mistakenly Flagged as Malicious"]]></title><description><![CDATA[
<p>Direct link to the comment with the new information (apparently it is not possible to keep the URL fragment): <a href="https://github.com/microsoft/vsmarketplace/issues/1168#issuecomment-2718564242" rel="nofollow">https://github.com/microsoft/vsmarketplace/issues/1168#issue...</a><p>The gist of it:<p>> The publisher account for Material Theme and Material Theme Icons (Equinusocio) was mistakenly flagged and has now been restored.<p>Previous discussion here, which is also the reason why I think this resolution is relevant as well: <a href="https://news.ycombinator.com/item?id=43178831">https://news.ycombinator.com/item?id=43178831</a></p>
]]></description><pubDate>Wed, 12 Mar 2025 20:37:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=43347422</link><dc:creator>RagingCactus</dc:creator><comments>https://news.ycombinator.com/item?id=43347422</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43347422</guid></item><item><title><![CDATA[VS Code Material Theme Was Mistakenly Flagged as Malicious]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/microsoft/vsmarketplace/issues/1168">https://github.com/microsoft/vsmarketplace/issues/1168</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43347421">https://news.ycombinator.com/item?id=43347421</a></p>
<p>Points: 6</p>
<p># Comments: 2</p>
]]></description><pubDate>Wed, 12 Mar 2025 20:37:31 +0000</pubDate><link>https://github.com/microsoft/vsmarketplace/issues/1168</link><dc:creator>RagingCactus</dc:creator><comments>https://news.ycombinator.com/item?id=43347421</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43347421</guid></item><item><title><![CDATA[New comment by RagingCactus in "Stop Requiring CRLF Line Endings"]]></title><description><![CDATA[
<p>The article doesn't mention possible security implications. However, we already get lots of vulnerabilities exactly _because_ implementations disagree on delimiters. Examples for this are HTTP request smuggling[1, 2, 3] and SMTP smuggling[4].<p>As the references show, this is already a big source of vulnerabilities - trying to push for a change in standards would likely make the situation much worse. At the very least, old unmaintained servers will not change their behavior.<p>I think we should accept that this ship has sailed and leave existing protocols alone. Mandate LF and disallow CRLF in new protocols, that's fine, but I don't think we should open this particular Pandora's Box.<p>[1] Simple example that doesn't use CRLF/LF disagreement: <a href="https://portswigger.net/web-security/request-smuggling" rel="nofollow">https://portswigger.net/web-security/request-smuggling</a><p>[2] Complex example that uses CRLF/LF disagreement: <a href="https://portswigger.net/web-security/request-smuggling/advanced" rel="nofollow">https://portswigger.net/web-security/request-smuggling/advan...</a> (see heading 'Request smuggling via CRLF injection')<p>[3] Random report on HackerOne I found where allowing LF created a vulnerability in NodeJS: <a href="https://hackerone.com/reports/2001873" rel="nofollow">https://hackerone.com/reports/2001873</a><p>[4] <a href="https://sec-consult.com/blog/detail/smtp-smuggling-spoofing-e-mails-worldwide/" rel="nofollow">https://sec-consult.com/blog/detail/smtp-smuggling-spoofing-...</a></p>
]]></description><pubDate>Wed, 04 Dec 2024 21:47:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=42322381</link><dc:creator>RagingCactus</dc:creator><comments>https://news.ycombinator.com/item?id=42322381</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42322381</guid></item><item><title><![CDATA[New comment by RagingCactus in "SL(1): Cure your bad habit of mistyping"]]></title><description><![CDATA[
<p>`git push -u origin HEAD` pushes the current branch to `origin` with the same name you have locally. You could even add an alias for that.</p>
]]></description><pubDate>Wed, 13 Jul 2022 06:14:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=32079520</link><dc:creator>RagingCactus</dc:creator><comments>https://news.ycombinator.com/item?id=32079520</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32079520</guid></item><item><title><![CDATA[New comment by RagingCactus in "JWT (JSON Web Token) debugger"]]></title><description><![CDATA[
<p>And another party trick: Base64-encoded JSON objects always start with "ey".</p>
]]></description><pubDate>Tue, 26 May 2020 20:42:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=23316153</link><dc:creator>RagingCactus</dc:creator><comments>https://news.ycombinator.com/item?id=23316153</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23316153</guid></item><item><title><![CDATA[New comment by RagingCactus in "Google expected to achieve quantum supremacy in 2019"]]></title><description><![CDATA[
<p>Are there any resources you can recommend to understand D-wave's quantum computing a bit better?<p>I took a very basic course about gate-model quantum computing at my university. The (mathematics) professor would have loved to be able to explain adiabatic quantum computing on a basic level, but was unable to find entry-level material to really understand how it works or what problems it can solve.</p>
]]></description><pubDate>Sun, 21 Jul 2019 18:29:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=20492858</link><dc:creator>RagingCactus</dc:creator><comments>https://news.ycombinator.com/item?id=20492858</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20492858</guid></item><item><title><![CDATA[New comment by RagingCactus in "Java Streams and State"]]></title><description><![CDATA[
<p>For the Fibonacci example the author claims:<p>> Notice how state was introduced? It made the code easier to read.<p>Correct me if I'm wrong, but the only state in that snippet lives in Stream.iterate(), the Fibonacci object is still immutable and next() on it is a pure function. To me this still looks very much like a functional programming approach.<p>Which just shows that moving business logic into properly named abstractions is good, no matter the programming paradigm.<p>The real stateful example is the IncrementSupplier and the impure get() method. I personally don't really like it ( Stream.iterate(0, i -> i + 1) is pretty readable to me), but that's probably just personal taste.</p>
]]></description><pubDate>Sun, 03 Mar 2019 18:46:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=19296029</link><dc:creator>RagingCactus</dc:creator><comments>https://news.ycombinator.com/item?id=19296029</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19296029</guid></item><item><title><![CDATA[New comment by RagingCactus in "Chezmoi: manage your dotfiles securely across multiple machines"]]></title><description><![CDATA[
<p>Thanks! Just defining it as a config variable is far too obvious in hindsight, I don't know why it didn't cross my mind.<p>I'll definitely try it out!</p>
]]></description><pubDate>Mon, 14 Jan 2019 15:24:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=18903616</link><dc:creator>RagingCactus</dc:creator><comments>https://news.ycombinator.com/item?id=18903616</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18903616</guid></item><item><title><![CDATA[New comment by RagingCactus in "Chezmoi: manage your dotfiles securely across multiple machines"]]></title><description><![CDATA[
<p>Is there a way to manage different "categories" of systems with chezmoi? For example, a "linux-server" category would contain an essential set of dotfiles, but not all the window manager related stuff from my linux laptop. Looking at the documentation, the only way to do this would be hostname-based templating, but that seems cumbersome as you would have to change every single template to add the new hostname to the section in question.</p>
]]></description><pubDate>Mon, 14 Jan 2019 15:05:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=18903453</link><dc:creator>RagingCactus</dc:creator><comments>https://news.ycombinator.com/item?id=18903453</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18903453</guid></item><item><title><![CDATA[New comment by RagingCactus in "MiSafes' child-tracking smartwatches are easy to hack"]]></title><description><![CDATA[
<p>The Bundesnetzagentur does not have the capacity to ban random devices for children.<p>They banned these devices because they are essentially bugs/covert listening devices and are even marketed as such. Devices that look innocious (such as children's watches or teddy bears) but in reality are covert listening devices are banned in Germany by §90 TKG. [1]<p>This is why the Bundesnetzagentur banned the smartwatches in question. They even cited cases in which these watches were used to monitor teachers in classrooms. [2]<p>"Normal" smartwatches are NOT banned. "Normal" smartwatches for children are also NOT banned. Only watches with monitoring functions fall under the §90 TKG law. [3]
Note that using an app to bring covert listening functionality to a phone or watch also converts that device into an illegal listening device.<p>[1] <a href="https://www.gesetze-im-internet.de/tkg_2004/__90.html" rel="nofollow">https://www.gesetze-im-internet.de/tkg_2004/__90.html</a> (Just for reference)<p>[2] <a href="https://www.bundesnetzagentur.de/SharedDocs/Pressemitteilungen/DE/2017/17112017_Verbraucherschutz.html" rel="nofollow">https://www.bundesnetzagentur.de/SharedDocs/Pressemitteilung...</a> (German, but google translate works sufficiently well)<p>[3] <a href="https://www.bundesnetzagentur.de/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Anbieterpflichten/Datenschutz/MissbrauchSendeanlagen/HinweiseProduktkategorien/hinweiseproduktkategorien.html?nn=690686" rel="nofollow">https://www.bundesnetzagentur.de/DE/Sachgebiete/Telekommunik...</a> (German, use a translator)</p>
]]></description><pubDate>Sat, 17 Nov 2018 11:31:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=18475059</link><dc:creator>RagingCactus</dc:creator><comments>https://news.ycombinator.com/item?id=18475059</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18475059</guid></item></channel></rss>