HackerURLs

一次又一次被重新发现的经典。

同一个链接,相隔一年以上,一次又一次被人重新发现、再次冲上 Hacker News 首页。能经受住这种时间检验的,大多是值得一读再读的文章。每篇附中文标题,讨论最热的那些再加上中文导读和高赞评论翻译。

从名人堂开始
  • 4,700+篇经过时间检验的经典

Hall of fame

名人堂

在经典库里看全部精选

上首页次数最多、而且有中文导读的 30 篇。时间轴上每个黑点是一次上首页,空心点是一次没冲上去的投稿。

  1. 正在载入经典…

Archive

经典库

按第一次上首页的年份分布,点柱子筛选。

排序

    About

    这些经典是怎么挑出来的

    1. 01

      合并同一个链接

      读取 Hacker News 自 2006 年以来的全部链接投稿,把 http/https、www、跟踪参数等写法不同的同一篇文章合并成一条。

    2. 02

      只留经得起时间的

      同一链接至少两次拿到 50 分以上(约等于上首页),而且两次相隔一年以上;再由 AI 剔除状态页、产品首页和新闻事件。

    3. 03

      写导读、译评论

      上首页次数最多的 2,000 篇配上中文导读、"为什么经久不衰",并精选翻译 HN 高赞评论。导读由 AI 生成,可能有误。

    编程与软件工程lcamtuf.coredump.cx

    这张 JPEG 同时也是一个网页

    This JPEG is also a webpage

    3次上首页
    6年跨度
    1,598累计得分
    423条评论

    2012 — 2018,它一次次回到首页

    黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。

    导读

    这是 lcamtuf 制作的一个 JPEG/HTML 多格式文件:它既是合法 JPEG 图片,也能在浏览器中作为网页显示。文件扩展名或服务器返回的类型决定浏览器把它当图片还是网页;评论者还展示了用类似技巧压缩 demo 代码、藏入可执行文件,以及构造上传图片 XSS 的可能。

    为什么经久不衰:它用极简例子揭示了文件格式解析和内容嗅探的模糊地带,既是经典技巧,也是理解上传与内容类型安全问题的好教材。

    关键词 多格式文件JPEGXSS内容嗅探

    HN 评论精选

    用 PNG/HTML 多格式文件来压缩 Web demo 代码。

    我滥用这个概念把 demo 代码压缩进 PNG 文件,效果很好。目前这是在网页上打包 demo 最高效的方式;少量未压缩的引导代码,其余都做 deflate 压缩。

    daeken查看英文原文

    I abused this concept to compress demo code in PNG files, with great success. http://demoseen.com/blog/2011-08-31_Superpacking_JS_Demos.html This is, at present, the most efficient way to pack demos on the web; a few characters of uncompressed bootstrap code, then the rest is deflated.

    同一文件按扩展名被当作网页或图片,存在误导型攻击面。

    你可以在 Unix 命令行里亲自验证:下载后 file 会把它识别为 JPEG 图片,注释里却包含 HTML;用浏览器打开这个文件能看到网页,改名为 .jpg 后则只显示图片。我不确定这有什么安全影响,但很多攻击向量都是从这种误导开始。

    loudmax查看英文原文

    You can see this in action for yourself on a unix cli: $ curl -o squirrel.html http://lcamtuf.coredump.cx/squirrel/ $ file squirrel.html squirrel.html: JPEG image data, JFIF standard 1.01, comment: "<html><body><style>body { visibility: hidden; } .n { visibilit" Open the file in a browser and read the page. Then: $ mv squirrel.html squirrel.jpg Open the renamed file in a browser and only the image appears. I'm not sure what the security implications are. I'm not creative or devious enough to think of anything offhand, but a lot of attack vectors start off with this sort of misdirection.

    可对允许上传图片的站点构造存储型 XSS。

    你也可以用这个技巧对允许上传图片的网站发起跨站脚本攻击:上传这个“图片”,多数校验器会接受;只要站点没有裁剪、缩放或加水印,再让受害者把这个上传文件当网页访问,里面的恶意 JavaScript 就会执行。

    eric_arrr查看英文原文

    You can also use this trick to launch cross-site script attacks against sites that allow you to upload images. Step 1: upload the "image" to the site. Let the site do whatever it does to ensure it has received a valid image. Nine validators out of ten will happily accept the file; the case that is likeliest to shoot you down is if the site modifies the image by cropping, resizing, or watermarking it. Step 2: point your victim back to the uploaded "image" as though it's actually a page, and presto!, it's a page -- a page with malicious javascript in it. Step 3: profit!

    多格式技巧也能把网页和 ELF 可执行文件合并在一起。

    同样的把戏还能用在编译后的可执行文件上:利用 ELF 文件里的填充位,这个 webpage.html 在任意 64 位 Linux 机器上既能当网页显示,也能作为可执行程序运行并打印相同文本。

    eschulte查看英文原文

    Here's the same thing done with a compiled executable using the padding bits in an ELF file. http://cs.unm.edu/~eschulte/data/webpage.html download webpage.html and it should run on any 64-bit linux machine as an executable printing out the same text shown on the web page. Here's the C file used to compile the original executable, nothing exciting... http://cs.unm.edu/~eschulte/data/webpage.c

    历次讨论

    同类还值得读

    1. 开源应用架构

      The Architecture of Open Source Applications

      《开源软件架构》(AOSA)是一本在线免费书,邀请知名开源项目的作者亲自剖析其内部设计,涵盖 SQLAlchemy、LLVM、Audacity、Apache、Bash 等系统。

      编程与软件工程上首页 9 次 · 2011–2024aosabook.org编辑精选
    2. 编程语言简史:简短、不完整且多半错误

      A Brief, Incomplete, and Mostly Wrong History of Programming Languages

      一篇以戏谑、故意不准确的方式回顾编程语言史的博客文章,用夸张轶事和讽刺定义串起 Lisp、C、C++、Java、JavaScript、PHP 等语言。

      编程与软件工程上首页 8 次 · 2009–2021james-iry.blogspot.com
    3. SQLite 是如何测试的

      How SQLite is tested

      SQLite 官方文档页,系统介绍 SQLite 的测试体系:多种测试方法(TCL 测试、模糊测试、回归测试、静态分析等)和海量测试用例,展示了这个小型开源项目如何靠极致测试获得…

      编程与软件工程上首页 8 次 · 2009–2025sqlite.org编辑精选
    4. 高级编程语言(2009)

      Advanced programming languages (2009)

      Matt Might 的经典文章,按用途推荐“高级编程语言”:如果追求就业就选主流语言,如果追求表达力、学术研究或创业,则推荐 Haskell、OCaml、Scala 等函数式语…

      编程与软件工程上首页 8 次 · 2009–2022matt.might.net
    5. 我的 Forth 与栈机器经历

      Yosefk - My history with Forth & stack machines

      作者以亲身经历回顾了使用 Forth 语言和栈式机器的历程:既赞叹其简洁优雅、代码量小、可自举的优点,也坦率指出栈操作在实际编程中的痛苦,以及 Forth 社区文化中的问题。

      编程与软件工程上首页 8 次 · 2010–2024yosefk.com编辑精选

    打赏支持

    打赏二维码

    觉得有用,请作者喝杯咖啡。

    WeChat

    关注向阳乔木

    微信公众号「向阳乔木推荐看」

    微信公众号「向阳乔木推荐看」二维码

    微信扫一扫;在微信里打开本页时,长按二维码识别。