Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Claude Code now reads AGENTS.md if there is no Claude.md(claude.com ↗)
    56comments
  2. Android 17 is the first since 3.x to add new APIs without releasing to the AOSP(grapheneos.social ↗)
    151comments
  3. Saving another 100TB of RAM(cloudflare.com ↗)
    21comments
  4. Cloudflare Quick Tunnels(cloudflare.com ↗)
    209comments
  5. Xcode 27.1 Beta Release Notes(developer.apple.com ↗)
    51comments
  6. Cache-to-Cache: Direct Semantic Communication Between LLMs (2025)(arxiv.org ↗)
    10comments
  7. Photon-Emission-Guided Laser Fault Injection Enables RP2350 Secure Debug(ledger.com ↗)
    40comments
  8. How to Write with an LLM(sockpuppet.org ↗)
    228comments
  9. Show HN: Cactus Needle 3: 8-29MB automation models can match DeepSeek V4 Flash(cactuscompute.com ↗)
    69comments
  10. OpenJev(openjev.com ↗)
    234comments
  11. The Implications of Linguistic Illegibility for LLM Security(arxiv.org ↗)
    12comments
  12. Our brain evolved from two primitive nervous systems that merged: Study(newscientist.com ↗)
    44comments
  13. C++26: Trivial infinite loops are no longer undefined behaviour(sandordargo.com ↗)
    152comments
  14. The first new cat species discovered in 100 years(nationalgeographic.com ↗)
    26comments
  15. Cyclomatic Complexity in C#(ndepend.com ↗)
    3comments
  16. Korea raises data breach fines to 10% of revenue(koreajoongangdaily.com ↗)
    52comments
  17. How SpaceX streamlined the Raptor engine(construction-physics.com ↗)
    17comments
  18. From Geometry to Algebra and Back Again: 4000 Years of Papers (2023) [video](youtube.com ↗)
    discuss
  19. I vibed a proof of Conway's conjecture(overreacted.io ↗)
    171comments
  20. Minimal Phone 2(minimalcompany.com ↗)
    127comments
  21. A search-and-inference database from scratch in pure Zig(antfly.io ↗)
    12comments
  22. Inside ZCode: Silently uploading your Git history to the cloud(ferstar.org ↗)
    87comments
  23. Warez: The Infrastructure and Aesthetics of Piracy (2021)(archive.org ↗)
    8comments
  24. Border agents can search cellphones without a warrant or reasonable suspicion(lawandcrime.com ↗)
    110comments
  25. US Military had close call after using AI for hallucinated intelligence report(cnn.com ↗)
    248comments
  26. Show HN: Ax-check.com – Can agents use your product?(ax-check.com ↗)
    24comments
  27. Cekura (YC F24) Is Hiring(ycombinator.com ↗)
    discuss
  28. North Korean nuclear test sets off years of earthquakes(science.org ↗)
    144comments
  29. Mathematicians Build Long-Awaited Graph Sandwich(quantamagazine.org ↗)
    15comments
  30. Show HN: Scry, programmable internet search w/ congestion pricing(scry.io ↗)
    16comments

A Password-Storage Field Study with Freelance Developers [pdf]

19 pointsby 7y agonet.cs.uni-bonn.de
20 comments
7y agoHN ↗

Good summary: https://twitter.com/PwdRsch/status/1103021803503607808

Researchers asked 43 freelance developers to code the user registration for a web app and assessed how they implemented password storage. 26 devs initially chose to leave passwords as plaintext.

Those devs were then asked to rewrite their code to 'store passwords securely.' Overall here are the methods of password storage chosen by the developers: > 10 - MD5 > 8 - Base64 > 7 - Bcrypt > 5 - SHA-256 > 5 - PBKDF2 > 3 - AES > 3 - 3DES > 1 - SHA-1 > 1 - HMAC/SHA1

only 3 of 17 participants, who used other hash algorithms, implemented salting. One of them generated a random salt, one made use of the username, and one hard-coded a static salt

As an industry, we (developers) have a long way to go.

7y agoHN ↗

Maybe the segment of in the industry in which the cheapest outsourced devs work, anyway.

Their conclusion states as much (hiring more expensive devs on freelancer.com got them more secure solutions):

"In addition, we found a significant effect in the freelancers’ acceptance rate between the €100 and €200 conditions for the prompted task and examined the effect of different payment levels on secure coding behavior. We saw more secure solutions in the €200 conditions, although the difference was not statistically significant. However, this result might be due to the small sample size and we believe this is worth following up in future work."

7y agoHN ↗

They also state it's not statistically significant :P

(Although I agree that seems likely because of the sample size)

7y agoHN ↗

I am freelancing on my 10th year now (never set foot in an office to work), and let me tell you hiring people on freelancer.com, no matter how much the budget is, won't end up good.

Fiver and freelancer.com has the worst kind of freelancers in my experience.

7y agoHN ↗

It's insane to me that it's not "common knowledge" to AT LEAST hash the passwords.

It's also interesting because 6 used an encryption algorithm, 10 used MD5 which is as good as plaintext nowadays IMO, and 8 used Base64, so even though 24 people thought they "secured it" the passwords are trivial to recover.

7y agoHN ↗

MD5 is a little better than plaintext. Difficult passwords are still difficult when you know their MD5 hash.

Base64... is actually plaintext; that's much, much worse.

7y agoHN ↗

Yeah MD5 is better to a degree, although 5f4dcc3b5aa765d61d8327deb882cf99 is still the most common password (md5 hashed) hehe :P

7y agoHN ↗

To play devil’s advocate, to me plaintext means I want to finish quickly because you haven’t asked and are paying too little, while any solution other than bcrypt/pbkdf2 means I don’t know what I’m doing.

7y agoHN ↗

Having once run my own freelance web dev company, I feel very comfortable saying that I would not take a project where I wasn't getting paid enough to bother hashing passwords. That's beyond justification. Either reject the client or protect their users.

7y agoHN ↗

How much time does it take you to drop in bcrypt?

7y agoHN ↗

This should be part of the job, no matter how tight the budget is. Password hashing is quite accessible in almost every language and I can't think of any excuse not to hash passwords.

7y agoHN ↗

Some sources now recommend argon2 over those two, could that be another right answer?

7y agoHN ↗

Right? You literally have to go OUT OF YOUR WAY to not be exposed to hasing/salting - every framework does it, most tutorials include it, for most environments its a simple library import/api.

I have to wonder how they sourced their developers. I don't think researchers would be motivated to do much more then post a low bidding ad on craigslist, meaning the quality of the developers will be commiserate.

7y agoHN ↗

It's inside the paper. They used Freelancer.com and gave 100EUR/200EUR to 100 developers. They created a fake company website and asked the devs to completed the sign-up portion of their fake social network because of one of their fake developers resigned recently.

They used 2 tier of payment to see if the payment had an effect on the security of the code.

Final Study For the final study we recruited freelancers via direct messages. We searched for all freelancers and filtered for the skill “Java.” Unfortunately, Freelancer.com’s search function also returns JavaScript developers or developers where we saw no connection to Java, so we manually pruned out developers whose profile did not include Java skills. Based on our experience in the pre-studies we added two payment levels to our study design (EUR100 and EUR200). We only accepted freelancers’ submissions if they were functional

7y agoHN ↗

I'm curious as to why they only said 3 of 17 used salt -- most bcrypt implementations will automatically generate a random salt (since the salt is visible in the generated hash), and 7 people used bcrypt?

Literally bcrypt and you're done (for now).

7y agoHN ↗

only 3 of 17 participants, who used other hash algorithms, implemented salting.

Emphasis added.

7y agoHN ↗

ahhh thank you I did not read closely enough

7y agoHN ↗

What was the task they were asked to perform? For most work a contract under 1k isn't going to get you an extremely high quality developer. In finding, planing, negotiating, and implementing a project you accrue a lot of billable overhead time.

If you assume it takes....

   - 1hr to apply, negotiate, and accept job
   - 1hr to do job
   - 1hr to submit and aid in support & integration of code 

Then at $200 you're making $66/hr. I'd classify myself as an average developer and most contract work people spam me me with on LinkedIn is in the $150/hr + benefits range.

I wonder what kind of quality they'd get with a larger project priced at that range. Something with 15hr of work @ $150 might bring in higher quality freelancers that are closer to the industry average.

7y agoHN ↗

I understand your point but that also depends on the geographic location of the developer. 66 US Dollars here in Brazil – as well in many other countries – is an excellent rate and you find top notch developers. Even with half of that you would find excellent and experienced developers around here.