Π‘ΠΎΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΠ΅ΡΡ ΠΠΊΠ²Π°ΡΠΈΡΠΌ β ΡΡΠΎ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΌΠΈΡ, ΠΎΡΡΠ°ΠΆΠ°ΡΡΠΈΠΉ Π²Π°ΡΡ Π»ΠΈΡΠ½ΠΎΡΡΡ, ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡ ΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΡ.
Laravel
Docker
Bootstrap
MySQL
Bcrypt
Π‘Π°ΠΉΡ: aquariumsocial.ru
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ: DanyaBooba/aquarium
ΠΠ²ΡΠΎΡ: ΠΠ°Π½ΠΈΠΈΠ» ΠΡΠ±ΠΊΠ°, daniil@dybka.ru, @ddybka
- π¬ Π’Π΅ΠΌΠ°ΡΠΈΠΊΠ° ΠΠΊΠ²Π°ΡΠΈΡΠΌ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ΅ΠΌΠ°ΡΠΈΠΊΡ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠΈΡΠ°. ΠΡΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΡΠΎΠ±ΡΡ Π°ΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»ΡΠ΄ΡΠΌ Ρ ΠΎΠ±ΡΠΈΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ°ΠΌΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡΡΡ Π²ΠΎΠΊΡΡΠ³ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ΄Π΅ΠΈ
- π¨ ΠΠ°ΡΡΠΎΠΌΠΈΠ·Π°ΡΠΈΡ ΠΠ΅Π½ΡΠΉΡΠ΅ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π°Π²Π°ΡΠ°ΡΠΊΠΈ, ΡΠ°ΠΏΠΊΠΈ ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄ΠΈΠ·Π°ΠΉΠ½Π°, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠ΅Π±Π΅ ΠΈ ΡΠ²ΠΎΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ°Ρ
- πΈ ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅Π»ΠΈΡΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΏΡΠΈΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌΠΈ, ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ, Π²ΠΈΠ΄Π΅ΠΎ ΠΈ ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΡΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ Π²Π°Ρ.
ΠΠ»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ Π²Ρ ΠΎΠ΄Π° Π² Π°ΠΊΠΊΠ°ΡΠ½Ρ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠΊΡΡΡΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ OAuth ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π―Π½Π΄Π΅ΠΊΡ ΠΈ Google. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½Π°ΠΆΠ°ΡΡ 1 ΠΊΠ½ΠΎΠΏΠΊΡ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π°ΠΊΠΊΠ°ΡΠ½Ρ Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΌΠΈ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ.
Π£ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΏΡΠΎΡΠΈΠ»Ρ, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² Π½Π΅Π³ΠΎ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎΡΡΡ. Π ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·ΠΈΡΡΠ΅ΠΌΡΠΌ Π΄Π°Π½Π½ΡΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π°Π²Π°ΡΠ°ΡΠΊΠ°, ΡΠ°ΠΏΠΊΠ°, ΠΈΠΌΡ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅. ΠΠΎΡΠ»Π΅ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΈ, ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ ΠΈ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ΄Π°ΡΡΡΡ Π·Π° ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎΡΡΠΎΠ² Ρ ΠΌΠ΅Π΄ΠΈΠ°ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ° Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΡΠΈΠ»ΠΈ, ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠΉ Π·Π° ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ. ΠΠΎΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² Π΅Π³ΠΎ ΠΏΡΠΎΡΠΈΠ»Π΅.
Π¦Π΅Π»Π΅Π²Π°Ρ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΡ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ β ΠΏΠΎΠ΄ΡΠΎΡΡΠΊΠΈ ΠΈ ΠΌΠΎΠ»ΠΎΠ΄ΡΠΆΡ 12 Π΄ΠΎ 35 Π»Π΅Ρ.
ΠΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π³ΡΡΠΏΠΏ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΠΈ:
- ΠΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π»ΠΈΡΠ½ΠΎΡΡΠΈ: Π’Π΅, ΠΊΡΠΎ ΡΡΡΠ΅ΠΌΠΈΡΡΡ ΠΊ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΡΡΠΈΠ»ΠΈΠΉ, ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈ ΠΏΠΎΠΈΡΠΊΡ ΠΏΠ°ΡΡΠ½Π΅ΡΠΎΠ²
- Π€ΠΎΡΠΎΠ³ΡΠ°ΡΡ ΠΈ Ρ ΡΠ΄ΠΎΠΆΠ½ΠΈΠΊΠΈ: ΠΠΊΠ²Π°ΡΠΈΡΠΌ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π²ΡΠ΅Ρ , ΠΊΡΠΎ Π²Π΄ΠΎΡ Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΠ°ΡΠΎΡΠΎΠΉ ΠΌΠΈΡΠ°, ΠΎΠ±ΠΎΠΆΠ°Π΅Ρ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΆΠ΅Π»Π°Π΅Ρ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΡΠΎΠΉ ΠΊΡΠ°ΡΠΎΡΠΎΠΉ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ
- ΠΡΡΠ΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΈΠΊΠΈ: Π’Π΅, ΠΊΡΠΎ ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΠΉΠ·Π°ΠΆΠΈ ΠΈ ΠΌΠ΅ΡΡΠ°Π΅Ρ Π΄Π΅Π»ΠΈΡΡΡΡ ΡΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΠ°ΡΡΠΊΠ°Π·Π°ΠΌΠΈ ΠΈ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΡΠΌΠΈ ΠΎ ΡΠ²ΠΎΠΈΡ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΡ ΠΏΡΠΈΠΊΠ»ΡΡΠ΅Π½ΠΈΡΡ Ρ ΡΠΈΡΠΎΠΊΠΎΠΉ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΠ΅ΠΉ.
- ΡΠΎΡΠΌΡ Π½Π° ΡΠ°ΠΉΡΠ΅ Π·Π°ΡΠΈΡΠ΅Π½Ρ ΠΎΡ CSRF-Π°ΡΠ°ΠΊ
- Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Π·Π°ΡΠΈΡΠ΅Π½Ρ ΠΎΡ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ
- Cookie Ρ ΡΠ°Π½ΡΡΡΡ Π² Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΡΠ΅ΡΡΠΈΠΉ
- ΠΏΠ°ΡΠΎΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Bcrypt.
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ : 100ΠΌΡ, ΡΡΠ΅Π΄Π½ΡΡ ΡΠΊΠΎΡΠΎΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ: 500ΠΌΡ.
Π Π°Π±ΠΎΡΠ° Π²Π΅Π±-Π²Π΅ΡΡΠΈΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π° Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, ΡΡΠΎ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΡΠΎΡΠΌΠ°ΡΠ°ΠΌΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΌΠ΅Π΄ΠΈΠ°ΡΠ°ΠΉΠ»ΠΎΠ².
Π‘ΠΎΡΡΠ΅ΡΡ ΠΠΊΠ²Π°ΡΠΈΡΠΌ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π΅Π±-Π²Π΅ΡΡΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ iOS ΠΈ Android.
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΆΠ΅Π»Π°ΡΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΡΠ°Π·Π²ΠΈΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°: Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ.