Уроците в сайта

n641951363

Registered
Здравейте,
Преди бях от редовните потребители на туриста с акаунт от 2006 година с няколко хиляди мнения и доста "Уроци"
За съжаление последните 4-5-6 години не съм влизал и сега останах разочарован че туриста е в това положение.
Има малка посещаемост, уроците са доста остарели (последният е от преди 2 години) и изглежда че повечето
от редовните тогава потребители не са тук.

Реших че е време да се завърна и да допринеса за нещо и да върна жеста на туриста след като дълги години
ме учеше и ми помагаше в това да се развивам.

Мисля да направя няколко серии от уроци за WEB стака.
Предимно PHP7, HTML5, CSS3, ES6.
Както и да засегна Bootstrap, React, Vue.js, Yii2 и може би pixi.js / Phaser

Та да дойдем на въпроса.

Според вас има ли смисъл от тези уроци.
Някой чете ли ги последните години.
 
Ако е нещо много специфично и непопулярно, сигурно си струва. Но иначе всякакви бейсик уроци са излишни просто защото вече почти всичко го има, или поне за начинаещи има мноого ресурси и е сравнително лесно да напреднеш. Т.е. нека уроците да не са на тема, която веднага излиза в гугъл или такива, които с проста логика сам човек може да измисли. Просто ще си загубиш времето.

Нещо специфично, или по-"тъмно" и недобре изяснено по интернет трябва да е, предполагам.
 
Преглеждайки последните 10-тина страници в "PHP MySQL ASP.NET" достигнах до извида че
основни принципи и добри практики не се спазват.
Пълно е с код който не отчита edge кейсовете нито пък код който да може лесно да се дебъгва и скалира.
Все си мисля че една хубава статия за това как да се пише хубав и скалируем код ще е доста полезна.

За момента идеята ми е за следните уроци, ако някой има по-добри или практични идеи да казва :)

1. SQLi - видове инжекции и как да се предпазим
Тука разбирайте че ще се засегнат теми като
защо да не ползваме mysql_* и защо функците stripslashes, addslashes, htmlspecialchars, *_real_escape_string не само че не вършат работа
но и е антипатърн да се изгражда защита на тях

2. XSS - какви са заплахите от него и как с помоща на CSRF може да подобрим сигорноста на приложението

3. Кеширане - как да го правим правилно и защо това ни помага
тук мисля да засегна как правилно можем да използваме кеширане на често използвани
данни който се ремапват както и защо е хубаво да се използва кеширане на SQL заявки.
Какво е CDN, Reverse Proxy и как можем да се възползваме от него.

4. HTML5 tower defense game - как да го направим правилно
Има много уроци как се правят игри на HTML5 но за съжаление почти никъде
не се засяга темата как правилно да го оптимизираме и можем да направим
играта да върви гладко дори да имаме 50 000 обикта в сцената.
Как да си направим собствен асинхронен PathFinder и да кешираме резултата.

5. git, docker и TDD - как да ползваме git правилно и автоматичен деплой при успешно преминати тестове

6. FrontEnd и BackEnd - или защо не трябва да използваме ServerSide HTML Rendering
изглежда че на много хора им е чужда идеята защо FrontEnd и BackEnd трябва да са
оделни приложения и защо ServerSide HTML Rendering е проблем при скалиране.

7. Как правилно да хешираме пароли и как да преминем от една система към друга без да се налага да си трием всички потребители

като основни неща мисля да са това и мисля да сетъпна един VPS на който да пусна примерите и да може да се види и пробва
колко лесно се екплотират грешките в кода и как при правилното написване не само че ги отстраняваме но и има значителни подобрения като performance
 
n641951363 каза:
да не ползваме mysql_* и защо функците stripslashes, addslashes, htmlspecialchars, *_real_escape_string не само че не вършат работа
Това е безсмислено, премахнато е преди сума и години.
 
uphero каза:
n641951363 каза:
да не ползваме mysql_* и защо функците stripslashes, addslashes, htmlspecialchars, *_real_escape_string не само че не вършат работа
Това е безсмислено, премахнато е преди сума и години.

http://web-tourist.net/forum/viewtopic.php?t=129462
темата е от преди 4 дни.
последният урок за SQLi е от 2012.

съгласен съм че по-напредналите и тези който използват някакъв модерен framework не са засегнати но все пак 99% от хостинг компаните предлагат и PHP 5.4 / 5.6 и явно хората го избират само и само да им върви системата понеже само така знаят да я направят
 
n641951363 каза:
99% от хостинг компаните предлагат и PHP 5.4 / 5.6 и явно хората го избират само и само да им върви системата понеже само така знаят да я направят
Избират го, защото по дефолт е избрано и повечето от потребителите не се и сещат да го променят.
 
vinsbg каза:
n641951363 каза:
99% от хостинг компаните предлагат и PHP 5.4 / 5.6 и явно хората го избират само и само да им върви системата понеже само така знаят да я направят
Избират го, защото по дефолт е избрано и повечето от потребителите не се и сещат да го променят.

Защото не знаят какво правят. Естествено, че компаниите ще държат по-стари версии налични, именно заради такива, които могат само да качат нещо там и да го ползват.
Никой нищо не губи от този урок. Ако наистина е добре обяснено, може да се научи и нещо допълнително покрай него.
 
n641951363 каза:
uphero каза:
n641951363 каза:
да не ползваме mysql_* и защо функците stripslashes, addslashes, htmlspecialchars, *_real_escape_string не само че не вършат работа
Това е безсмислено, премахнато е преди сума и години.

http://web-tourist.net/forum/viewtopic.php?t=129462
темата е от преди 4 дни.
последният урок за SQLi е от 2012.

съгласен съм че по-напредналите и тези който използват някакъв модерен framework не са засегнати но все пак 99% от хостинг компаните предлагат и PHP 5.4 / 5.6 и явно хората го избират само и само да им върви системата понеже само така знаят да я направят
Подкрепям те, но ако го погледнеш реално, по интернет има достатъчно много такива уроци; в stackoverflow предостатъчно хора са питали по тая тема и там го има обяснено надълго и нашироко, на достъпен език.

И въпреки всички тези ресурси, отново се появяват хора, които използват mysql_*. С един урок повече на тази тема не мисля, че ще се промени положението. Ако беше нещо ново и нямаше лесно достъпни уроци - прекрасно - но в случая не вярвам да постигнеш много. (в смисъл, хората да научат от твоя урок по тази тема)
 
Да и аз съм съгласен че няма да окаже особенно влияние, но дори 1 да поиска да прави нещата правилно
да може да намери тези ресурси в туриста.

Като цяло когато започнах да посещавам туриста бях на 13 и всички уроци и препоръки който не бяха на бг
за мен бяха буквално недосегаеми.

Точно за това ми се иска да съживя малко тази секция и като цяло този урок няма да е просто
от типа не ползвай X ами ползвай Y а по скоро от типа
До скоро се използваше X - ето какви са проблемите с него
Добре е да използвате Y - и той има същите проблеми ако не го ползвате правилно
Y се ползва правилно така
Можем да надградим Y със W и Z ето така и премахваме всички тези проблеми.

Вече съм почнал с подготовката за тези уроци ( все пак ми трябват и още 40 мнения :D )
За момента плана ми няма да е само до SQLi но и до това как да се проектира правилно базата данни
и как да се оптимизира най добре.

В общи линии ще се сведе до 20-30 реда мрънкане защо mysql_* не трябва да се ползва +
live пример за SQLi и преминавам към основите на PDO
Надграждам с Active Record
проект на проста система (може би блог не съм решил) която да демонстрира
Основните типове данни, релаците едно към много и много към много.

Малка част за това как правилно трябва да се санитизират данните и защо не трябва да
вярваме на нищо получено от потребителя и как правилно да ги извеждаме без да
се излагаме на XSS.

След това към Active Record-а ще намешам out-of-the-box кеширане на заявките +
оптимизация с правилни индекси и ускоряване на Heat-а с Ram engine.

сравнения относно перформанс на състата система с mysql_*, PDO, Active Record и cached active record.

Накрая ще завирша цялостна преглед за това че системата е по-сигорна но и схеми като Active Record
самия дев процес е по-бърз и по-сигурен

Горе долу така според мен трябва да протече урока и когато някой постне че има проблем и
ползва mysql_* можем лесно да му помогнем и после да си го насочим към ресурс в самият сайт
 
И аз мислех да се пусна да напиша няколко урока, нещо по-ново - примерно за vuejs, но напоследък не ми остава много време..
 

Горе