Simple Machines Community Forum

Simple Machines Blogs => Developers' Blog => Topic started by: Dragooon on June 03, 2014, 11:00:17 AM

Title: Suit up!
Post by: Dragooon on June 03, 2014, 11:00:17 AM
Hello! Time for another update regarding our progress with 2.1.

Change in password hash
Passwords stored in the database are hashed (http://en.wikipedia.org/wiki/Hash_function). In the unlikely event that your database gets stolen and the passwords are leaked, the thief cannot see the actual password without cracking the hash. The hash protects the user's password being in plain sight to the attacker and helps protect their online identity on that site, as well as, potentially, other sites.

SMF has been using SHA-1 (http://en.wikipedia.org/wiki/SHA-1) hash for its passwords from 1.1 to 2.0 and while SHA-1 still has no known weakness, it's a weak hash by today's standard and is susceptible to being cracked via brute force attacks. While this is still a hard task and would probably require GPU farms to be effective on a large scale, it's definitely a threat especially to passwords which are weak, commonly used and/or based on common dictionary words.

With 2.1 the entire hash has been switched to bcrypt (http://en.wikipedia.org/wiki/Bcrypt). It's a far more secure and strong hash than SHA-1 and is a lot less susceptible to brute force attacks unlike SHA-1. Any forum upgrading from 2.0/1.1 will have their users' passwords upgraded to this hash once they login for the first time on the 2.1 forum and new users will automatically get the bcrypt password.

Likes and Mentions
SMF now has support for grabbing a user's attention simply by mentioning their name using the @username syntax, similar to popular social networking sites such as Facebook and Twitter. This action will send an alert and/or an e-mail depending upon the receiving user's preferences.

Likes also receive some additional features and improvements, with the ability to like a post via AJAX without having to refresh the page as well as permissions for membergroups to allow liking posts or not.

Minimum PHP version bump
With the additional improvements in password hashing as well as other improvements and advancements requiring the use of features such as closures, we've decided to bump the minimum version of PHP to 5.3.8 with 2.1.   SMF 2.1 will not work with versions below that.

Conversion of create_function's lambda style functions to true anonymous closures
SMF has a lot of create_function calls (over 200 in fact) and create_function is a particularly memory hungry function which cannot be optimised by bytecode caches and properly garbage collected. With the recent bump in PHP 5.3, we've decided to take this opportunity and convert all of them to true closures which will have much better support as well as proper support for garbage collection the moment it's out of scope.

BoardIndex optimisation
The BoardIndex receives some love with improvements in the way it's queried, breaking the previously monstrous query into three smaller queries. Also, boards are now explicitly sorted by using a sort cache for all the DB types instead of using a rather inefficient ORDER BY clause for Postgres, SQLite. This also fixes random board ordering in MySQL 5.6+ without impacting the performance.

Karma's gone!
As decided in a poll before, we've completely removed karma which will in turn be made into a separate optional modification for SMF 2.1.

But wait! We've even more!

That's it for now :), thank you for reading. With every commit, we're nearing a Beta release with the hopes to get one out as soon as possible. As always, all the latest changes, everything I've listed here and more can be seen on our GitHub repository but please be careful, as it's in Alpha stages for now. Feel free to give it a spin but do not use it in a live/production environment, there may be bugs or we may unexpectedly change something which might put your forum into an unusable state.

Regards
Title: Re: Suit up!
Post by: Matthew K. on June 03, 2014, 11:17:36 AM
Upgrader and installer also now have RTL :P
Title: Re: Suit up!
Post by: kat on June 03, 2014, 11:18:06 AM
Thanks for the update dragooooooooooooooooooooooooooooooooooooon! :)
Title: Re: Suit up!
Post by: Dragooon on June 03, 2014, 11:35:05 AM
Upgrader and installer also now have RTL :P
Well I was bound to miss a few :P, one can always check Github's commit logs to know exactly what went down.
Title: Re: Suit up!
Post by: radu81 on June 03, 2014, 12:16:31 PM
great news, thanks for the updates!
Title: Re: Suit up!
Post by: CountryLady on June 03, 2014, 01:41:19 PM

Fantastic News~! Many "Thanks" to ALL involved. This is really exciting.

Those with the know-how 8) to do this, please keep up this awesome work.

Thanks for posting this Dragooon. :D
Title: Re: Suit up!
Post by: CoreISP on June 03, 2014, 05:54:30 PM
Good job :)
Title: Re: Suit up!
Post by: vbgamer45 on June 03, 2014, 06:02:23 PM
Thanks for the update! I really enjoy the mentions system and use it on my boards.
Title: Re: Suit up!
Post by: Antechinus on June 03, 2014, 06:08:53 PM
Nice work. Question: is it possible for a user to completely switch off the likes and mentions notifications?* I know some people like them, but others just find them a nuisance.

*Meaning so they never show up on the forum interface at all.
Title: Re: Suit up!
Post by: Arantor on June 03, 2014, 06:10:07 PM
I believe likes can be turned off, not so sure about mentions. Given that they tie into the alerts system and a bunch of other stuff also ties into the alerts system...
Title: Re: Suit up!
Post by: Antechinus on June 03, 2014, 06:17:39 PM
K. Well my 2c is that it'd be cool to have a user option to mindlessly clear all mentions with one click. I find it a PITA when I have to manually go through and deal with each one.
Title: Re: Suit up!
Post by: Arantor on June 03, 2014, 06:18:27 PM
You should be able to turn off getting alerts for mentions if you don't care :P
Title: Re: Suit up!
Post by: Antechinus on June 03, 2014, 06:20:18 PM
Oh goody. Elk didn't have that last I checked. :D
Title: Re: Suit up!
Post by: Arantor on June 03, 2014, 06:21:04 PM
That's because Elk's system is totally different from SMF's.
Title: Re: Suit up!
Post by: Antechinus on June 03, 2014, 06:23:39 PM
Well since they're determined to be better, I expect they'll have to put it on their to-do list now.
Title: Re: Suit up!
Post by: Arantor on June 03, 2014, 06:25:22 PM
Yeah, I chose to stop development before I finished building it. Long story. Dragooon is doing awesome work now though.
Title: Re: Suit up!
Post by: NanoSector on June 04, 2014, 01:52:57 AM
You should be able to turn off getting alerts for mentions if you don't care :P
Wouldn't that kind of defeat the entire point? :P

Nice work, thanks for the update.
Title: Re: Suit up!
Post by: Antechinus on June 04, 2014, 02:19:12 AM
Yeah, I want it to defeat the whole point. :D
Title: Re: Suit up!
Post by: Antes on June 04, 2014, 02:29:40 AM
Thanks for the update! :)
Title: Re: Suit up!
Post by: 4Kstore on June 04, 2014, 02:54:55 AM
Nice update! thanks for all
Title: Re: Suit up!
Post by: Dragooon on June 04, 2014, 03:55:46 AM
Nice work. Question: is it possible for a user to completely switch off the likes and mentions notifications?* I know some people like them, but others just find them a nuisance.

*Meaning so they never show up on the forum interface at all.
The alerts for both Likes and Mentions can be disabled, but the user will still see the mentions/likes on individual posts.
Title: Re: Suit up!
Post by: Antechinus on June 04, 2014, 04:02:15 AM
Cool. That'll work. :)
Title: Re: Suit up!
Post by: Xarkurai on June 04, 2014, 07:00:02 AM
Very interesting, thanks for letting us know!

I have a question about the karma since I didn't followed it up.
Since it becomes a mod, will there be a replacement system and will the karma mod be maintained by SMF itself?
Title: Re: Suit up!
Post by: Dragooon on June 04, 2014, 07:02:35 AM
Quote
Since it becomes a mod, will there be a replacement system and will the karma mod be maintained by SMF itself?
Likes is intended to be the replacement system, and the mod will be released by SMF which will be exactly as the old system but I don't know about the plans of maintaining it (probably nothing beyond the occasional bug fix if any)
Title: Re: Suit up!
Post by: radu81 on June 04, 2014, 08:22:21 AM
Likes is intended to be the replacement system, and the mod will be released by SMF which will be exactly as the old system but I don't know about the plans of maintaining it (probably nothing beyond the occasional bug fix if any)
Good choice  8)
Title: Re: Suit up!
Post by: Irisado on June 04, 2014, 08:36:24 AM
Thanks for the update.  Great work everyone :).
Title: Re: Suit up!
Post by: ziycon on June 04, 2014, 10:39:11 AM
Great work all.
Title: Re: Suit up!
Post by: Xarkurai on June 04, 2014, 06:45:13 PM
Quote
Since it becomes a mod, will there be a replacement system and will the karma mod be maintained by SMF itself?
Likes is intended to be the replacement system, and the mod will be released by SMF which will be exactly as the old system but I don't know about the plans of maintaining it (probably nothing beyond the occasional bug fix if any)

Ah, that's cool :).
Another annoying question: any idea's known about converting karma to likes, in that case? (for example positive karma becomes the current amount of positive likes and negative karma becomes the current amount of dislikes)

Cheers :).
Title: Re: Suit up!
Post by: Arantor on June 04, 2014, 06:46:15 PM
Isn't possible because karma is only recorded per user, not per post. (It is recorded per post for *short* periods of time, like the last hour by default)
Title: Re: Suit up!
Post by: Xarkurai on June 05, 2014, 06:35:20 AM
Cool, okay thanks.
I was planning on modifying the karma system but since it's going to disappear I'm not sure to still do it.
Title: Re: Suit up!
Post by: Chen Zhen on June 05, 2014, 11:37:10 PM
Quote
Conversion of create_function's lambda style functions to true anonymous closures
SMF has a lot of create_function calls (over 200 in fact) and create_function is a particularly memory hungry function which cannot be optimised by bytecode caches and properly garbage collected. With the recent bump in PHP 5.3, we've decided to take this opportunity and convert all of them to true closures which will have much better support as well as proper support for garbage collection the moment it's out of scope.

  This is a good decision and I am glad to see the team decided to go though with that minimal requirement and to do away with those create_functions. Imo it was rather obvious to what was causing those issues as the official PHP documentation clearly states the repercussion of using those in multiple and compounding at that.
 
Title: Re: Suit up!
Post by: Arantor on June 05, 2014, 11:44:35 PM
All of the code related to PHP 5.5 compatibility for 2.0.7 was drawn from 2.1, most of which was written in 2012 by people who've long since left the team. If it was that obvious, would it not have been noticed sooner?
Title: Re: Suit up!
Post by: Alpay on June 06, 2014, 09:33:05 AM
Good Job ^^
Title: Re: Suit up!
Post by: karlbenson on August 25, 2014, 06:40:46 AM
Really looking forward to 2.1 and reading about it.
Title: Re: Suit up!
Post by: Masterd on August 31, 2014, 03:04:12 PM
Really looking forward to 2.1 and reading about it.

Yeah, it looks like it's going to be really good. We're finally getting some long wanted improvements.
Title: Re: Suit up!
Post by: gorbi on September 24, 2014, 10:43:25 AM
Hello! When wait 2.0.9?
Title: Re: Suit up!
Post by: Arantor on September 24, 2014, 10:46:48 AM
When it is ready. The team are reviewing it and testing it and then it will be released once the team are satisfied with it.
Title: Re: Suit up!
Post by: live627 on September 24, 2014, 11:04:32 AM
(http://img.pandawhale.com/75163-SOON-black-cat-meme-2Iwo.jpeg)

couldn't resist...
Title: Re: Suit up!
Post by: Arantor on September 24, 2014, 11:06:40 AM
Who let Antes in to the kitchen? ;D
Title: Re: Suit up!
Post by: live627 on September 24, 2014, 11:10:53 AM
My evil non-existent half brother. :D
Title: Re: Suit up!
Post by: Antes on September 24, 2014, 11:12:38 AM
Who let Antes in to the kitchen? ;D

Check the rear door, do you think that's only for dogs :D :D
Title: Re: Suit up!
Post by: Arantor on September 24, 2014, 11:13:45 AM
And you would come in via the dog's door? For shame.
Title: Re: Suit up!
Post by: Antes on September 24, 2014, 11:19:22 AM
And you would come in via the dog's door? For shame.

For emergency only... Mailman and things inside mailbox taking my whole time mostly... I sleep rest