this post was submitted on 10 Oct 2023
70 points (88.9% liked)
Technology
59314 readers
4603 users here now
This is a most excellent place for technology news and articles.
Our Rules
- Follow the lemmy.world rules.
- Only tech related content.
- Be excellent to each another!
- Mod approved content bots can post up to 10 articles per day.
- Threads asking for personal tech support may be deleted.
- Politics threads may be removed.
- No memes allowed as posts, OK to post as comments.
- Only approved bots from the list below, to ask if your bot can be added please contact us.
- Check for duplicates before posting, duplicates may be removed
Approved Bots
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Stuff like register_globals and the default MySQL extension back in the bad pre-5.3 days definitely didn't help though. But those haven't been a problem in over a decade, so nowadays it's on par with pretty much any other web language/framework. Especially if you use the libraries from Symfony and/or Laravel.
That's a trip down memory lane, I once (probably a decade ago by now) had to fix a website built by an unknown developer for a customer. Was wondering why I was missing all kinds of variable assignments, until the word 'register_globals' floated up from the depths of my mind. And indeed, they enabled that setting in .htaccess, which broke the website after PHP 5.4 did away with it permanently. But to defend the PHP developers a bit: they turned it off by default in 4.2, which came out in 2002, because they recognised it as a security vulnerability. You can debate if that setting should have sticked around for 13 more years, but at least it required a manual action to actually be able to use it from 4.3. Although I cannot help but wonder how many shared hosting companies turned it on just to prevent all kinds of sites from breaking of course.
And yes, oh boy, the MySQL driver.. That one wasn't great as it didn't support parameterization, but I guess at least the documentation for
mysql_query
was clear that any data in your query should be escaped withmysql_real_escape_string
. To be fair, if you execute a query containing unescaped data with MySQLi or PDO directly you are going to get Bobby Table'd just as hard.