Edit: here's the code for my snake game too, btw = https://github.com/robertsdotpm/resume/blob/main/snake.js
Show HN: Tetris in a PDF
141–150 of 238 posts
Re: Show HN: Tetris in a PDF
#142This is amazing and terrifying (I am a security engineer and parsing complex document formats is a never-ending treasure trove of vulnerabilities).
Re: Show HN: Tetris in a PDF
#143I don't know much about the security issues others have raised, but if you're good enough to make this thing then I deserve to be pwned by you.
Chapeau!
Re: Show HN: Tetris in a PDF
#144This is horrifying, PDFs should not be able to execute code.
I understand why it happened -- it made sense to allow PDF's to be used for form-filling, and once you can fill in forms it obviously makes sense to validate inputs, and to handle arbitrary validation complexity you need a scripting language, and obviously then you want to be able to automatically fill in fields based on other fields, or even produce a QR code so it can be printed and scanned... And they didn't want to create a new extension like ".ipdf" for interactive PDF.
But still. I hate it.
Re: Show HN: Tetris in a PDF
#145This is amazing and terrifying (I am a security engineer and parsing complex document formats is a never-ending treasure trove of vulnerabilities).
The "code execution" in PDF parsing is what enabled this legendary zero-click, zero-day exploit of iOS devices: https://googleprojectzero.blogspot.com/2021/12/a-deep-dive-i...
Re: Show HN: Tetris in a PDF
#146They also support iframes! The absolute madness of PDFs is a world wonder. But I'm really still not sure we could do without them.
Gzipped PostScript documents were fairly popular during the 90's and are functionally identical to PDFs for 99% of use cases. (PDF is essentially PostScript, but with more features.)
Re: Show HN: Tetris in a PDF
#147Earlier quoted context omitted.
A tetris PDF could be in a 1 pixel iframe right on this page and you'd never know it. So it doesn't require any user action to download one.
That's why you run NoScript along side with UBO