Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ
Dependency injection
ΠΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠ°
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ Π²Π°ΡΠ΅ΠΌΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠ΅ΡΠΈΡ ΡΡΠ°ΡΠ΅ΠΉ ΠΎΡ Jakob Jenkov, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΡΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΠΈΠ»ΠΈ DI. ΠΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½Π° ΡΠ΅ΡΠΈΡ ΡΠ΅ΠΌ, ΡΡΠΎ Π² Π½Π΅ΠΉ Π°Π²ΡΠΎΡ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΈΡ ΠΏΠΎΠ½ΡΡΠΈΠΉ ΠΊΠ°ΠΊ Β«Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΒ», Β«Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉΒ», Β«ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΄Π»Ρ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉΒ», ΡΡΠ°Π²Π½ΠΈΠ²Π°Ρ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ DI-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Spring), ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΠΏΡΠΈΡΠ΅Π» ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ DI-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΅Π»ΡΠ½ΡΠΌ Π²Π·Π³Π»ΡΠ΄ΠΎΠΌ Π½Π° Π²ΠΎΠΏΡΠΎΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ .
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΠ·Π½ΡΡΡΠΈ ΠΈ ΠΈΠ·Π²Π½Π΅ (DI). ΠΠΎ ΡΠΌΡΡΠ»Ρ Π½Π°ΡΡΠΎΡΡΠ°Ρ ΡΡΠ°ΡΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΡΠ°ΡΡΡ Jakob Jenkov Understanding Dependencies, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄Π°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΠΌΡ ΠΏΠΎΠ½ΡΡΠΈΡ Β«Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΒ» ΠΈ ΠΈΡ ΡΠΈΠΏΠ°ΠΌ.
Π‘Π΅ΡΠΈΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ°ΡΡΠΈ
ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
Β«ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉΒ» β ΡΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π² ΡΡΠ°ΡΡΠ΅ ΠΠ°ΡΡΠΈΠ½Π° Π€Π°ΡΠ»Π΅ΡΠ° Inversion of Control Containers and the Dependency Injection Pattern. ΠΡΠΎ Ρ ΠΎΡΠΎΡΠ°Ρ ΡΡΠ°ΡΡΡ, Π½ΠΎ ΠΎΠ½Π° ΡΠΏΡΡΠΊΠ°Π΅Ρ ΠΈΠ· Π²ΠΈΠ΄Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. Π’Π°ΠΊΠΆΠ΅ Ρ Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ Π²ΡΠ²ΠΎΠ΄Π°ΠΌΠΈ ΡΡΠ°ΡΡΠΈ, Π½ΠΎ ΠΎΠ± ΡΡΠΎΠΌ β Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ΅ΠΊΡΡΠ°Ρ .
ΠΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ β ΡΡΠΎ ΡΡΠΈΠ»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΠ»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π·Π°Π΄Π°ΡΡΡΡ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΡΡΠ½ΠΎΡΡΡΡ. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ. DI β ΡΡΠΎ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° ΡΠ°ΠΌΠΎΠ½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎ, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
UPD: ΠΏΠΎΡΠ»Π΅ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π°Π²ΡΠΎΡΠΎΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ΄Π° Ρ flatscode ΠΈ fogone, Ρ ΠΏΡΠΈΠ½ΡΠ» ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠΎΡΠ½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π² ΠΊΠΎΠ΄Π΅. ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π·Π°ΠΌΡΡΠ΅Π» Π±ΡΠ» Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π½Π΅ ΡΡΠΎΠ³Π°ΡΡ ΠΊΠΎΠ΄ ΠΈ Π΄Π°Π²Π°ΡΡ Π΅Π³ΠΎ ΡΠ°ΠΊΠΈΠΌ, ΠΊΠ°ΠΊΠΎΠ² ΠΎΠ½ Π½Π°ΠΏΠΈΡΠ°Π½ Π°Π²ΡΠΎΡΠΎΠΌ. ΠΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ Π°Π²ΡΠΎΡΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ Π² ΡΠΏΠΎΡΠ½ΡΡ ΠΌΠ΅ΡΡΠ°Ρ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Β«Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π΅Β», Π½ΠΈΠΆΠ΅ Π΄Π°Π΅ΡΡΡ Π΅Π³ΠΎ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ. Π’Π°ΠΊΠΆΠ΅ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠ°ΡΡΠΈ.
ΠΡΠΎΡ DAO (Data Access Object), MyDao Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ΅ javax.sql.DataSource Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΠΠ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π² ΠΠ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Person.
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ ΠΊΠ»Π°ΡΡ MyDao ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ DataSourceImpl, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ΅ Π΄Π°Π½Π½ΡΡ . Π’ΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ MyDao Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ DataSource, ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π½Π΅Π³ΠΎ. ΠΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ Π±Π΅Π· ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ DataSource. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, MyDao ΠΈΠΌΠ΅Π΅Ρ Β«Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΒ» ΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° DataSource ΠΈ ΠΎΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ»Π°ΡΡ MyDao ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ DataSourceImpl ΠΊΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ DataSource. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΊΠ»Π°ΡΡ MyDao ΡΠ°ΠΌ Β«ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ ΡΠ²ΠΎΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΒ». ΠΠΎΠ³Π΄Π° ΠΊΠ»Π°ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΎΠ½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠΎΠ², Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ MyDao Π·Π°Π²ΡΠΈΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡ DataSourceImpl ΠΈ ΠΎΡ ΡΠ΅ΡΡΡΠ΅Ρ ΠΆΠ΅ΡΡΠΊΠΎ Π·Π°Π΄Π°Π½Π½ΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ DataSourceImpl. ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΈΡ ΡΠ΅ΡΡΡΠ΅Ρ ΡΡΡΠΎΠΊ, Π½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° DataSource Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°.
ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ, Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»Π°ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΎΠ½ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅Π³ΠΈΠ±ΠΊΠΈΠΌ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΠΊ ΡΡΠΈΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌ. ΠΡΠΎ ΠΏΠ»ΠΎΡ ΠΎ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠ΄. Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΊΠ»Π°ΡΡ MyDao. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ DAO-ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈΡ Π²ΡΠ΅. Π Π΄ΠΎΠ±Π°Π²ΠΎΠΊ, Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ½ΠΈΡ-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ MyDao, Π·Π°ΠΌΠΎΠΊΠ°Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ DataSource. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ DataSourceImpl. ΠΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΌΠ°, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΏΠ»ΠΎΡ Π°Ρ ΠΈΠ΄Π΅Ρ.
ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΠ΅ΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½:
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° DataSourceImpl ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΎ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΡΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΡΡΠΎ β ΡΠ΅ΡΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ DataSourceImpl. Π₯ΠΎΡΡ ΠΊΠ»Π°ΡΡ MyDao Π²ΡΠ΅ Π΅ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΡΠΈΡ ΡΠ΅ΡΡΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΎΠ½ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΠ°ΠΌ. ΠΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠΌ, ΡΠΎΠ·Π΄Π°ΡΡΠΈΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ MyDao. ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Β«Π²Π½Π΅Π΄ΡΡΡΡΡΡΒ» Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ MyDao. ΠΡΡΡΠ΄Π° ΠΈ ΡΠ΅ΡΠΌΠΈΠ½ Β«Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ (ΠΏΡΠΈΠΌ. ΠΏΠ΅ΡΠ΅Π².: ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ β ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡ) Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉΒ». Π’Π΅ΠΏΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π½ΠΈΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΠ, URL, ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ»ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΊΠ»Π°ΡΡΠΎΠΌ MyDao Π±Π΅Π· Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌΠΈ. ΠΠΎΠΆΠ½ΠΎ Π²Π½Π΅Π΄ΡΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ-ΡΠ΅ΡΡΠ΅ΡΡ, Π»ΠΈΠ±ΠΎ ΠΏΡΡΠΌΠΎ ΡΠ΅ΡΠ΅Π· ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ (ΠΏΡΠΈΠΌ. ΠΏΠ΅ΡΠ΅Π².: ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ ΠΏΠΎΠ»Π΅ΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊ Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½, ΡΡΠΎ Π½Π°ΡΡΡΠ°Π΅Ρ Π·Π°ΡΠΈΡΡ Π΄Π°Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠ°).
ΠΠ»Π°ΡΡ MyDao ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ. Π‘Π΅ΠΉΡΠ°Ρ ΠΎΠ½ Π²ΡΠ΅ Π΅ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΈ ΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° DataSource, ΠΈ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° DataSourceImpl. ΠΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΡΠ΅Π³ΠΎ-ΡΠΎ, ΠΊΡΠΎΠΌΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° DataSource. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠΎ ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠ΅ΠΉ DataSource Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅ΡΡΡΠ΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠ»Π°ΡΡ MyDao Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° DataSourceImpl ΠΈΠ»ΠΈ ΠΎΡ ΡΠ΅ΡΡΡΠ΅Ρ ΡΡΡΠΎΠΊ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ DataSourceImpl. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ DataSource Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ MyDao.
Π¦Π΅ΠΏΠ½ΠΎΠ΅ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
ΠΡΠΈΠΌΠ΅Ρ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΡΠΎΡΠ΅Π½. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΠ·ΡΠ°Π·ΠΈΡΡ, ΡΡΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½Π° ΠΈΠ· ΠΊΠ»Π°ΡΡΠ° MyDao ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠ»Π°ΡΡ MyDao. ΠΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π·Π½Π°ΡΡ ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ DataSource, ΡΡΠΎΠ±Ρ Π±ΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π΅Π³ΠΎ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ MyDao. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ, ΡΠ΅ΠΏΠ΅ΡΡ MyBizComponent Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° DataSourceImpl ΠΈ ΡΠ΅ΡΡΡΠ΅Ρ ΡΡΡΠΎΠΊ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ. ΠΡΠΎ Π΅ΡΠ΅ Ρ ΡΠΆΠ΅, ΡΠ΅ΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ MyDao ΠΎΡ Π½ΠΈΡ , ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ MyBizComponent ΡΠ΅ΠΏΠ΅ΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΠΎΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ ΡΠ°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ DataSourceImpl ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ ΠΊ ΡΠ°Π·Π½ΡΠΌ ΡΠ»ΠΎΡΠΌ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ. Π‘Π»ΠΎΠΉ Π½ΠΈΠΆΠ΅ MyBizComponent β ΡΡΠΎ ΡΠ»ΠΎΠΉ DAO.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ β ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠ»ΠΎΡΠΌ. MyBizComponent Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° MyDao. ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ:
Π‘Π½ΠΎΠ²Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ, MyDao, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ. Π’Π΅ΠΏΠ΅ΡΡ MyBizComponent Π·Π°Π²ΠΈΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° MyDao. ΠΡΠ»ΠΈ Π±Ρ MyDao Π±ΡΠ» ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΌΠ΅Π½ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±Π΅Π· Π²Π΅Π΄ΠΎΠΌΠ° MyBizComponent.
Π’Π°ΠΊΠΎΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· Π²ΡΠ΅ ΡΠ»ΠΎΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΠ»ΠΎΡ (ΡΠ»ΠΎΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ) Π΄ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (Π΅ΡΠ»ΠΈ ΠΎΠ½ Π΅ΡΡΡ).
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡ: ΠΈΠ·ΡΡΠ°Π΅ΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΈ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡΡ ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ Π·Π°ΡΠΈΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΡ ΡΠ°ΠΊΠΈΡ Π°ΡΠ°ΠΊ.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠΎΡΠΌΠΎΠΉ Π²Ρ ΠΎΠ΄Π°. ΠΠΎΠ΄ HTML-ΡΠΎΡΠΌΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅:
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π·Π°ΠΏΡΠΎΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ : Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ SQL :
Π¨Π°Π³ 1. ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π² Π»Π΅Π²ΡΡ ΠΏΠ°Π½Π΅Π»Ρ:
Π¨Π°Π³ 2. ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β« Build Schema Β».
Π¨Π°Π³ 3. ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ Π² ΠΏΡΠ°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ:
Π¨Π°Π³ 4. ΠΠ°ΠΆΠΌΠΈΡΠ΅ Β« Run SQL Β». ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ admin@admin.sys ΠΈ 1234 Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠΎΠ»Ρ. ΠΠ°ΠΏΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄ SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΠΎΠΉΠ΄Π΅Π½ ΠΏΡΡΠ΅ΠΌ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΠ°ΡΡΠΈ ΠΏΠ°ΡΠΎΠ»Ρ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΈΡΡΠΈΠ½Π½ΡΠΌ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΏΠΎΠ»Π΅ Π°Π΄ΡΠ΅ΡΠ° ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ:
ΠΈ xxx Π² ΠΏΠΎΠ»Π΅ ΠΏΠ°ΡΠΎΠ»Ρ.
Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π₯Π°ΠΊΠ΅ΡΡΠΊΠ°Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ: SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ Π² Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±Π°Π·ΠΎΠ²ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ, ΡΠ°ΠΊΡΡ ΠΊΠ°ΠΊ ΡΠ°Π½Π°ΡΠΈΡ ΠΏΠΎΠ»Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°.
Π§ΡΠΎΠ±Ρ ΠΎΠ±ΠΎΠΉΡΠΈ Π΅Π³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»Π΅ ΠΏΠ°ΡΠΎΠ»Ρ. ΠΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ ΡΠ°Π³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ:
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅:
Π¨Π°Π³ 1 : ΠΠ²ΠΎΠ΄ΠΈΡ xxx@xxx.xxx Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π΄ΡΠ΅ΡΠ° ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ;
Π¨Π°Π³ 2 : ΠΠ²ΠΎΠ΄ΠΈΡ xxxβ) OR 1 = 1 β ] ;
ΠΠ°ΠΆΠΈΠΌΠ°Π΅Ρ ΠΊΠ½ΠΎΠΏΠΊΡ Β« ΠΡΠΏΡΠ°Π²ΠΈΡΡ Β».
ΠΠ½ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ Π² ΠΏΠ°Π½Π΅Π»Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Π·Π°ΠΏΡΠΎΡ Π±ΡΠ» ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½:
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠΈ Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΈΡ ΡΠ΅Π»Π΅ΠΉ ΠΏΡΡΠ°ΡΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π² Π°ΡΠ°ΠΊΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
ΠΡΡΠ³ΠΈΠ΅ ΡΠΈΠΏΡ Π°ΡΠ°ΠΊ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ
SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π½Π°Π½Π΅ΡΡΠΈ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠΈΠΉ ΡΡΠ΅ΡΠ±, ΡΠ΅ΠΌ Π²Ρ ΠΎΠ΄ Π² ΡΠΈΡΡΠ΅ΠΌΡ Π² ΠΎΠ±Ρ ΠΎΠ΄ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΠ°ΠΊΠΈΡ Π°ΡΠ°ΠΊ ΠΌΠΎΠ³ΡΡ:
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ
ΠΠ°ΡΠΈΡΠ° ΠΎΡ SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ
ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ», ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π·Π°ΡΠΈΡΠΈΡΡΡΡ ΠΎΡ Π°ΡΠ°ΠΊ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ :
Π₯ΡΠ°Π½ΠΈΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ β ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ SQL-Π·Π°ΠΏΡΠΎΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π²ΡΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
Π₯Π°ΠΊΠ΅ΡΡΠΊΠ°Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ Havij
Π ΡΡΠΎΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Havij Advanced SQL Injection Π΄Π»Ρ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ ΡΠ°ΠΉΡΠ°.
Π£ΠΏΠΎΠΌΡΠ½ΡΡΡΠΉ Π²ΡΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΡΠ΅Π½ΠΊΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ / ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΠΏΡΠ±Π»ΠΈΠΊΡΠΉΡΠ΅ ΡΠ²ΠΎΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ΅ΠΌΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°. ΠΠ° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π΄ΠΈΠ·Π»Π°ΠΉΠΊΠΈ, ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ, Π»Π°ΠΉΠΊΠΈ, ΠΎΡΠΊΠ»ΠΈΠΊΠΈ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ Π²Π°ΠΌ ΡΠΏΠ°ΡΠΈΠ±ΠΎ!
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΡΡΠ°Π²Π»ΡΠΉΡΠ΅ ΡΠ²ΠΎΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ΅ΠΌΠ΅ ΡΡΠ°ΡΡΠΈ. ΠΡ ΠΊΡΠ°ΠΉΠ½Π΅ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ½Ρ Π²Π°ΠΌ Π·Π° Π²Π°ΡΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π΄ΠΈΠ·Π»Π°ΠΉΠΊΠΈ, ΠΎΡΠΊΠ»ΠΈΠΊΠΈ, Π»Π°ΠΉΠΊΠΈ, ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ!
ΠΠ·Π»Π°ΠΌΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΡΡ: ΡΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΏΠΎ SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡΠΌ
Π’ΠΈΠΏΡ SQLi
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ 5 ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ² SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ:
ΠΠ°Π»Π΅Π΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΈΡ Π΄Π΅ΡΠ°Π»ΡΠ½Π΅ΠΉ.
Π£ΡΠ·Π²ΠΈΠΌΡΠ΅ ΡΠΎΡΠΊΠΈ
Π£ΡΠ·Π²ΠΈΠΌΡΠ΅ ΡΠΎΡΠΊΠΈ Π΄Π»Ρ Π°ΡΠ°ΠΊΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΌΠ΅ΡΡΠ°Ρ , Π³Π΄Π΅ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ Π·Π°ΠΏΡΠΎΡ ΠΊ Π±Π°Π·Π΅: ΡΠΎΡΠΌΠ° Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΏΠΎΠΈΡΠΊΠΎΠ²Π°Ρ ΡΡΡΠΎΠΊΠ°, ΠΊΠ°ΡΠ°Π»ΠΎΠ³, REST-Π·Π°ΠΏΡΠΎΡΡ ΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ URL.
ΠΠ°ΡΠΈΡΠ° ΠΎΡ SQLi
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ½ΠΊΠΎΡΡΠΈ ΠΈ Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ, Π½ΠΎ ΡΡΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π°.
ΠΠ΅Π»ΡΠ·Ρ Π²ΡΡΠ°Π²Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² Π·Π°ΠΏΡΠΎΡ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΡΠ΅Π³Π΄Π° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΠΉΡΠ΅ Π²Π²ΠΎΠ΄ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΈ ΡΠΎΡΠΌΠΈΡΡΠΉΡΠ΅ Π·Π°ΠΏΡΠΎΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ· Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ Π±Π΅Π»ΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ: ΠΈΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ΄Π½Π΅Π΅ ΠΎΠ±ΠΎΠΉΡΠΈ, ΡΠ΅ΠΌ ΡΠ΅ΡΠ½ΡΠ΅. ΠΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ, ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Π±Π°Π· Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°Π΄Π°Π½Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ Π² Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. ΠΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ².
ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π½Π΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ ΠΏΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π±Π°Π·Π΅.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΊΠΈΠ±Π΅ΡΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ β ΡΡΠΎ ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² Π½Π°ΠΏΠ°Π΄Π΅Π½ΠΈΡ β Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± Π·Π°ΡΠΈΡΡ.
ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°ΡΠ°ΠΊΠΈ
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΠ³ΠΎ Π΄Π»Ρ SQLi ΠΊΠΎΠ΄Π° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡ ΡΠ°ΠΊΠΎΠΉ Π°Π½ΡΠΈΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π°ΡΠ°ΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½ΠΈΠΆΠ΅.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΡΡΡ Π·Π°ΠΏΡΠΎΡΠ°, ΠΈΠ΄ΡΡΡΡ ΠΏΠΎΡΠ»Π΅ Π²Π°ΡΠ΅ΠΉ ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π²ΠΎΠ΄ Π² ΡΡΠ·Π²ΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Π΅ Username Π·Π°ΠΏΡΠΎΡΠ° admin’— ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π·Π°ΠΉΡΠΈ Π½Π° ΡΠ΅ΡΡΡΡ ΠΏΠΎΠ΄ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠ°ΡΠΎΠ»Ρ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π°. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠ΅ΠΉΡΠ°Ρ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ΅Π΄ΠΊΠΎ, Π½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎ Π½Π΅ΠΉ ΡΡΠΎΠΈΡ.
ΠΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΏΡΠ°Π²ΠΈΡΡΡ Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΠΈΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΈΠΏ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΎΠ±ΠΎΠΉΠ΄ΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ Π°Π½Π°Π»ΠΈΠ·:
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΎΠ±ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΈΠΏ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π² ΡΠ΅Π»ΡΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ:
ΠΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ΄ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΡΠ½ΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΡΠΈΠ² ΡΠΈΠ»ΡΡΡΠ° ΠΊΠ°Π²ΡΡΠ΅ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΡ ΡΡΡΠΎΠΊ:
Π MySQL Π΄Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ΅ΡΠ½Π°Π΄ΡΠ°ΡΠΈΡΠΈΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ HEX() ΠΈΠ»ΠΈ Π²Π²ΠΎΠ΄ΠΈΡΡ ΠΈΡ ΠΏΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎ:
ΠΠ±Ρ ΠΎΠ΄ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
ΠΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π² ΡΠ΅Π±Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ, Π΄Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° ΡΡΠ·Π²ΠΈΠΌΠΎΠΉ ΡΠΎΡΠΌΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠΏΠ΅ΡΠ²ΡΠ΅ Π΅Π³ΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ Π»Π΅Ρ 10 Π½Π°Π·Π°Π΄ ΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡ. ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΏΡΠΎΠ³Π½Π°ΡΡ ΡΠ΅ΡΠ΅Π· Π½Π΅Π³ΠΎ ΡΠΎΡΠΌΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΡΠ°ΠΉΡΠ΅:
Union injection
UNION ΡΡΠΎ SQL-ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ°Π·Π½ΡΡ ΡΠ°Π±Π»ΠΈΡ Π² ΠΎΠ΄Π½Ρ. ΠΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΈ ΠΎΠΏΠ°ΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ.
ΠΠΎΠΏΡΡΡΠΈΠΌ, Π½Π° ΡΠ°ΠΉΡΠ΅ Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠ²Π°ΡΠΎΠ² Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ ΠΏΠΎΠΈΡΠΊΠ°. Π’ΠΎΠ³Π΄Π°, ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π² ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ² ΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΡΠ΅ΡΠ΅Π· UNION ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π»ΡΠ±ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ
ΠΡΠ»ΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° SQL Server ΠΈ ASP/PHP, Π»ΠΈΠ±ΠΎ Π½Π° PostgreSQL ΠΈ PHP, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ Π·Π½Π°ΠΊ ‘;’ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²:
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΉ ΡΡΠΎΠ½
ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈ Π½ΡΠ°Π½ΡΠΎΠ² Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ, Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡ Π²ΡΠ΅. ΠΠ»Π°Π²Π½ΠΎΠ΅, ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΡΡ ΡΡΠΈ ΠΏΡΠΈΡΠΌΡ ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π±Π°Π·Π΅ ΠΈ Π΄Π°ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
Error-Based
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ±ΠΎΡΠΎΡΡ ΡΡΠΎΡ ΡΠΈΠΏ Π°ΡΠ°ΠΊ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π° ΠΏΡΠΎΠ΄Π΅. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΄Π°Π²Π°ΠΉΡΠ΅ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ, ΡΠ΅ΠΌ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π³ΡΠΎΠ·ΠΈΡΡ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΌΠ΅ΡΡ.
ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ SQL Server, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π² ΡΠ΅ΠΊΡΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΡΠΎΠ»Π±ΡΠΎΠ²:
Π‘Π»Π΅ΠΏΡΠ΅ ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ
Π Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ Ρ ΠΎΡΠΎΡΠΎ ΡΠ΄Π΅Π»Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ Π½Π΅ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π½ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ, Π½ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° UNION-Π°ΡΠ°ΠΊΠΈ. Π’ΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π²ΡΠ»Π΅ΠΏΡΡ.
Π£ΡΠ»ΠΎΠ²Π½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΡΠ°ΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ IF ΠΈ WHERE β ΠΎΡΠ½ΠΎΠ²Π° ΡΠ»Π΅ΠΏΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡΠΈΡΠΈΠ½, ΠΏΠΎΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π²Π°ΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Ρ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π° Π½Π΅ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π°Π±Ρ ΠΊΠ°ΠΊ. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ Π±Π°Π· Π±ΡΠ΄Π΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ:
Boolean-based
ΠΡΠ»ΠΈ Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ Π²ΡΠ΅ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈΠ· HTTP-ΡΡΠ°ΡΡΡΠ°, Π² ΡΠ΅ΡΠ²ΠΈΡΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ ΠΊ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΠ»Π΅ΠΏΠΎΠΉ Π°ΡΠ°ΠΊΠ΅. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π·Π°ΠΏΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΠΈ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ :
Time-Based
ΠΡΠ»ΠΈ Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ Π½Π΅ Π½Π°Π±Π»ΡΠ΄Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΎΡΠ»ΠΈΡΠΈΠΉ Π² ΠΎΡΠ²Π΅ΡΠ°Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΎΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ»Π΅ΠΏΠ°Ρ Π°ΡΠ°ΠΊΠ°. ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ SLEEP ΠΈΠ»ΠΈ WAIT FOR DALAY:
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π±ΡΠ΄ΡΡ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΊΠ°ΠΊ boolean-based, ΡΠΎΠ»ΡΠΊΠΎ true ΠΈ false Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΡΠΊΠ»ΠΈΠΊΠ°. ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΡΠ΅Π²ΠΈΠ΄Π½Ρ. ΠΡΠ»ΠΈ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ°Π»Π΅Π½ΡΠΊΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ, Π±ΡΠ΄Π΅Ρ ΡΠΈΠ»ΡΠ½ΠΎΠ΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΡΠ°ΠΊΡΠΎΡΠΎΠ² ΡΠΈΠΏΠ° ΠΏΠΈΠ½Π³Π°. ΠΡΠ»ΠΈ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΡΡ β Π°ΡΠ°ΠΊΠ° Π·Π°ΠΉΠΌΠ΅Ρ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π΅Ρ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΎΡΡΠ°Π½ΠΎΠ²ΡΡ.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎ SQLi ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΡΠ΅Π»ΡΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ, Π½ΠΎ ΠΌΡ ΠΏΠΎΡΡΠ°ΡΠ°Π»ΠΈΡΡ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ.
Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° SQL;
ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° SQL β ΡΡΠΎ Π°ΡΠ°ΠΊΠ°, Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π²ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·ΠΆΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ Π½Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ SQL Server Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠ±Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°, ΡΠΎΠ·Π΄Π°ΡΡΠ°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ SQL, Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΊ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ SQL Server Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ. ΠΠ°ΠΆΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΡΠ°ΡΡ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠΎΠΌ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ ΠΎΠΏΡΡΠ½ΠΎΠ³ΠΎ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠ°.
ΠΡΠΈΠ½ΡΠΈΠΏ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π°ΡΠ°ΠΊΠΈ ΠΏΡΡΠ΅ΠΌ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° SQL
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠΎΡΠΌΠ° Π°ΡΠ°ΠΊΠΈ SQL Injection ΡΠΎΡΡΠΎΠΈΡ Π² ΠΏΡΡΠΌΠΎΠΉ Π²ΡΡΠ°Π²ΠΊΠ΅ ΠΊΠΎΠ΄Π° Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ SQL ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ. ΠΠ΅Π½Π΅Π΅ ΡΠ²Π½Π°Ρ Π°ΡΠ°ΠΊΠ° Π²Π½Π΅Π΄ΡΡΠ΅Ρ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π² ΡΡΡΠΎΠΊΠΈ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΈΠ»ΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ³Π΄Π° Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ SQL, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΡΠ°ΠΊΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΏΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΊ Π½Π΅ΠΉ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊ Π²ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ, Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅Ρ Π²Π½Π΅Π΄ΡΡΠ΅ΠΌΡΡ ΡΡΡΠΎΠΊΡ ΠΌΠ΅ΡΠΊΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Β«—Β». ΠΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΊΡΠΈΠΏΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΡΡΡΡ Π°ΡΠ°ΠΊΡ SQL Injection. Π‘ΠΊΡΠΈΠΏΡ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ SQL-Π·Π°ΠΏΡΠΎΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΆΠ΅ΡΡΠΊΠΎ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΡΠΎΠΊ ΡΠΎ ΡΡΡΠΎΠΊΠΎΠΉ, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ:
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π·Π°ΠΏΡΠΎΡ, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΡΠΊΡΠΈΠΏΡΠΎΠΌ, Π±ΡΠ΄Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ:
ΠΡΠ»ΠΈ Π²ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ SQL ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π΅ΡΠ΅Π½, ΠΈΡΠΊΠ°ΠΆΠ΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅Π»ΡΠ·Ρ Π²ΡΡΠ²ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ. ΠΠΎΡΡΠΎΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ Π²ΡΠ΅Ρ Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ Π΄Π°Π½Π½ΡΡ , Π° ΡΠ°ΠΊΠΆΠ΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠΎΠ΄, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ SQL ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΈΠ΅ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π°Ρ ΡΡΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π°.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎΡΡΠΈ Π²ΡΠ΅Ρ Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π°Π½Π½ΡΡ
ΠΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π²Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, Π²ΡΠΏΠΎΠ»Π½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΠΏΠ°, Π΄Π»ΠΈΠ½Ρ, ΡΠΎΡΠΌΠ°ΡΠ° ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π΄Π°Π½Π½ΡΡ . ΠΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΠΈ, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΏΡΠΎΡΠΈΠ² Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ , ΡΡΠΈΡΡΠ²Π°ΠΉΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Ρ Π² Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ:
ΠΠ΅ Π΄Π΅Π»Π°ΠΉΡΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ΅, ΡΠΈΠΏΠ΅ ΠΈΠ»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΎΡΠ΅Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅.
ΠΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎ Π·Π»ΠΎΠΌΡ ΡΠΌΡΡΠ»Ρ Π²ΡΡΠ°Π²ΠΈΡ MPEG-ΡΠ°ΠΉΠ» ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 10 ΠΠ ΡΠ°ΠΌ, Π³Π΄Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Π²Π²ΠΎΠ΄ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°?
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ ΡΠΈΠΏ Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΏΡΠ΅Π΄Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡΡΠ΅ΡΠ°.
ΠΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ Π΄ΠΎΠΏΡΡΠΊΠ°ΠΉΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠΊΠ»ΠΎΠ½ΡΠΉΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠ° ΠΈ Π·Π°ΡΠΈΡΠΈΡ ΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈΠ΅ΠΌΠΎΠ² Π°ΡΠ°ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡΡΠ΅ΡΠ°.
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ Π²ΡΠ΅ Π²Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΡ Π΅ΠΌΠ΅.
ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Transact-SQL Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ· Π΄Π°Π½Π½ΡΡ , Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.
ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Ρ ΡΠ°Π½ΠΈΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ.
Π ΠΌΠ½ΠΎΠ³ΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΡΠ΅Π΄Π°Ρ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ Π² Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΡ Π·ΠΎΠ½Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠ°Π½Π½ΡΠ΅, Π½Π΅ ΠΏΡΠΎΡΠ΅Π΄ΡΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΊΠ»ΠΎΠ½ΡΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ.
ΠΠ½Π΅Π΄ΡΠΈΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ°ΠΏΠ½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎΡΡΠΈ. ΠΠ΅ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΡΡΡΠ΅ ΠΏΡΠΎΡΠΈΠ² ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ-Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠΎΠ², ΠΌΠΎΠ³ΡΡ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ ΠΏΡΠΎΡΠΈΠ² ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΎΡΠΎΠ² ΠΏΡΠ΅Π΄Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΡΡ
Π°ΡΠ°ΠΊ. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅, Π²Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΈ Π΄Π°Π»Π΅Π΅ Π²ΠΎ Π²ΡΠ΅Ρ
ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΡΠΎΡΠΊΠ°Ρ
ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ Π³ΡΠ°Π½ΠΈΡ Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½ΠΎΠΉ Π·ΠΎΠ½Ρ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΄Π°Π½Π½ΡΡ
Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΏΡΠΎΡΡΠΎΠ΅ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ Π²Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΆΠ΅ Π±ΡΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Ρ, ΡΠΎ Π»ΡΠ±ΠΎΠΉ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠ΄Π°ΡΡΡΡ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅.
ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ Π²Π²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ Π±Π΅Π· ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ. ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΎΡΠΊΠΎΠΉ Π²Ρ ΠΎΠ΄Π° Π΄Π»Ρ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°.
ΠΠ΅ Π΄ΠΎΠΏΡΡΠΊΠ°ΠΉΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΠΎΠ»ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΡΠΎΠΊ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Ρ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²: AUX, CLOCK$, COM1βCOM8, CON, CONFIG$, LPT1βLPT8, NUL ΠΈ PRN.
ΠΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΡΠΊΠ»ΠΎΠ½ΡΠΉΡΠ΅ Π²Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ SQL-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ²
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ @au_id ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π±ΡΠΊΠ²Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄. ΠΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΈΠΏΡ ΠΈ Π΄Π»ΠΈΠ½Π΅. ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ @au_id Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌ ΡΠΈΠΏΠ° ΠΈ Π΄Π»ΠΈΠ½Ρ, ΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° Ρ Ρ ΡΠ°Π½ΠΈΠΌΡΠΌΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°ΠΌΠΈ
Π₯ΡΠ°Π½ΠΈΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Ρ Π°ΡΠ°ΠΊΠ°ΠΌ SQL Injection, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π½Π΅ΡΠΈΠ»ΡΡΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ·Π²ΠΈΠΌΡΠΌ:
ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Ρ ΡΠ°Π½ΠΈΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΡΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Parameters Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ SQL
ΠΡΠ»ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ ΡΠ°Π½ΠΈΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠΎΠ΄Π°:
Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ Π²Π²ΠΎΠ΄Π°
ΠΠ»Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ Π°ΡΠ°ΠΊ SQL injection ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ escape-ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ Π²Π²ΠΎΠ΄Π°. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΡΠΈΡΡ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΌ Π² ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠΈΡΠΊ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΡΡΡΠΎΠΊ:
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ LIKE
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ LIKE ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΡΠ΅ Π·Π½Π°ΠΊΠΈ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΡΡΡ escape-ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ:
ΠΡΠΎΡΠΌΠΎΡΡ ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π°ΡΠ°ΠΊΠΈ SQL Injection
Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ QUOTENAME() ΠΈ REPLACE()
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ Π²ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΌ Transact-SQL ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. ΠΠ°Π½Π½ΡΠ΅, ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΠ΅ ΡΠ΅ΡΠ΅Π· Π²Ρ ΠΎΠ΄Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈΠ»ΠΈ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ Π² ΡΡΠ½ΠΊΡΠΈΠΈ QUOTENAME() ΠΈΠ»ΠΈ REPLACE(). ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ @variable, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ QUOTENAME(), ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΊ ΡΠΈΠΏΡ sysname ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ Π² 128 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
@ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ | Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΉ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠΈΠΊ |
---|---|
ΠΠΌΡ Π·Π°ΡΠΈΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° | QUOTENAME(@variable) |
Π‘ΡΡΠΎΠΊΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 128 Π·Π½Π°ΠΊΠΎΠ². | QUOTENAME(@variable, »») |
Π‘ΡΡΠΎΠΊΠ° ΠΈΠ· > 128 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² | REPLACE(@variable,»», »»») |
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ SET ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΡΠ°ΠΊΠ° Injection, ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌΠ°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
ΠΡΠ±ΠΎΠ΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²ΠΥάήΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΈέΠάΨΗΥPΪήΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Transact-SQL ΡΡΠ΅ΠΊΠ°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π½Π΅ Π²ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² Π±ΡΡΠ΅Ρ, Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΡΠ»ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΎΡ Π°ΡΠ°ΠΊΠΈ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ Π½Π΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π½ΠΎ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ, ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ. Π’Π°ΠΊ, Ρ ΡΠ°Π½ΠΈΠΌΠ°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°, ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠ°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°, ΡΡΠ·Π²ΠΈΠΌΠ° Π΄Π»Ρ Π°ΡΠ°ΠΊΠΈ Injection, ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΡΡΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ 154 Π·Π½Π°ΠΊΠ° Π² Π±ΡΡΠ΅Ρ, ΡΠ°ΡΡΡΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° 128 Π·Π½Π°ΠΊΠΎΠ², Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ sa, Π½Π΅ Π·Π½Π°Ρ ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠΎΠ»Ρ.
Π£ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ QUOTENAME(@variable, »») ΠΈ REPLACE()
ΠΡΠ»ΠΈ ΡΡΡΠΎΠΊΠΈ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ QUOTENAME() ΠΈ REPLACE(), Π½Π΅ ΡΠΌΠ΅ΡΠ°ΡΡΡΡ Π² Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅, ΠΎΠ½ΠΈ ΡΡΠ΅ΠΊΠ°ΡΡΡΡ Π±Π΅Π· Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. Π₯ΡΠ°Π½ΠΈΠΌΠ°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°, ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠ°Ρ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ Π΄Π»Ρ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π²ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠΌ ΠΊΠΎΠ΄Π°.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅Π²ΡΡΠΈΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π΄Π»Ρ Π±ΡΡΠ΅ΡΠ° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ REPLACE(). Π₯ΡΠ°Π½ΠΈΠΌΠ°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°, ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠ°Ρ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°ΡΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°ΡΠΌ.
Π£ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ QUOTENAME(@variable, ‘]’)
ΠΡΠΈ ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠΈΠΏΠ° sysname ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ², ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π²ΠΌΠ΅ΡΠ°ΡΡ Π΄ΠΎ 128 Π·Π½Π°ΠΊΠΎΠ² Π½Π° ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΡ QUOTENAME() ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π²Π½ΡΡΡΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Transact-SQL. ΠΠ»ΠΈ ΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π±ΡΡΠ΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΡΠΈΡΠ°ΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅.
SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ. ΠΡΠΎΠ²Π΅ΡΠΊΠ°, Π²Π·Π»ΠΎΠΌ, Π·Π°ΡΠΈΡΠ°
SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡ β ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ
Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π²Π·Π»ΠΎΠΌΠ° ΡΠ°ΠΉΡΠ°.
Π‘ΡΡΡ ΡΠ°ΠΊΠΈΡ
ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ β Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π² Π΄Π°Π½Π½ΡΠ΅ (ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ ΡΠ΅ΡΠ΅Π· GET, POST Π·Π°ΠΏΡΠΎΡΡ ΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Cookie) ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ SQL ΠΊΠΎΠ΄Π°. ΠΡΠ»ΠΈ ΡΠ°ΠΉΡ ΡΡΠ·Π²ΠΈΠΌ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ, ΡΠΎ ΠΏΠΎ ΡΡΡΠΈ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ²ΠΎΡΠΈΡΡ Ρ ΠΠ (ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎ MySQL) ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ.
ΠΠ°ΠΊ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΡΡ Π²Π½Π΅Π΄ΡΡΡΡ SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ?
ΠΡΠ»ΠΈ ΠΏΡΠΈ Π·Π°Ρ ΠΎΠ΄Π΅ Π½Π° Π΄Π°Π½Π½ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ°, Π·Π½Π°ΡΠΈΡ ΡΠ°ΠΉΡ ΡΡΠ·Π²ΠΈΠΌ Π½Π° SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ.
ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠ΅ΠΉ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ (SQL Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ)
1) ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠ΅ β ΡΠ²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ WHERE ΠΊ ΠΈΡΡΠΈΠ½ΠΎΡΡΠ½ΠΎΠΌΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈ Π»ΡΠ±ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
2) ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΊ Π·Π°ΠΏΡΠΎΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°. ΠΠ΅Π»Π°Π΅ΡΡΡ ΡΡΠΎ ΡΠ΅ΡΠ΅Π· ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ UNION.
3) ΠΠ°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΡΡΠΈ Π·Π°ΠΏΡΠΎΡΠ°.
ΠΡΠ°ΠΊΡΠΈΠΊΠ°. ΠΠ°ΡΠΈΠ°Π½ΡΡ Π²Π·Π»ΠΎΠΌΠ° ΡΠ°ΠΉΡΠ° Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΡ Π½Π° SQL Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ
ΠΡΠ°ΠΊ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π²ΡΠΈΠΉΡΡ ΡΠ°ΠΉΡ test.ru. Π Π±Π°Π·Π΅ Ρ ΡΠ°Π½ΠΈΡΡΡ 4 Π½ΠΎΠ²ΠΎΡΡΠΈ, 3 ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ. Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π½ΠΎΠ²ΠΎΡΡΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΠ°ΡΠΌΠ΅ΡΡΠ° public (Π΅ΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 1, ΡΠΎ Π½ΠΎΠ²ΠΎΡΡΡ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΡΡΡ).
Π‘ΠΏΠΈΡΠΎΠΊ Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ, ΡΠ°Π·ΡΠ΅ΡΡΠ½Π½ΡΡ
ΠΊ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ
ΠΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΡΡΡΠ°Π½ΠΈΡΠ΅ test.ru/?detail=4, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΡΠ²ΡΡΡΡΡ Π½ΠΎΠ²ΠΎΡΡΡ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ° β Π½ΠΎΠ²ΠΎΡΡΡ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°.
Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½ΠΎΠ²ΠΎΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, Π½ΠΎ ΠΎΠ½Π° Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Π° ΠΊ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΠΎ ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΡΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ»ΠΈ ΡΠ°ΠΉΡ Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ ΠΈ ΠΎΠ½ Π²ΡΠ΄Π°Π²Π°Π» ΠΎΡΠΈΠ±ΠΊΡ ΠΠ, ΡΠΎ ΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ².
Π Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΏΠ»ΡΡ (+) Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΎΠ»Ρ ΠΏΡΠΎΠ±Π΅Π»Π°, ΡΠ°ΠΊ ΡΡΠΎ Π½Π΅ ΠΏΡΠ³Π°ΠΉΡΠ΅ΡΡ
Π ΠΈΡΠΎΠ³Π΅ ΡΠ΄Π°ΡΠ° ΡΠ»ΡΠ±Π½ΡΠ»Π°ΡΡ ΠΈ Π΄Π²Π° Π·Π°ΠΏΡΠΎΡΠ° (ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈ ΡΡΠ΅ΡΠΈΠΉ) Π²Π΅ΡΠ½ΡΠ»ΠΈ Π½Π°ΠΌ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅ΡΠ²ΡΡΡΠΎΠΉ Π½ΠΎΠ²ΠΎΡΡΠΈ
Π Π°Π·Π±ΠΎΡ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΈΠ·Π½ΡΡΡΠΈ
ΠΠ° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΡΡΠΈ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°:
$detail_id=$_GET[‘detail’];
$zapros=»SELECT * FROM `$table_news` WHERE `public`=’1′ AND `id`=$detail_id ORDER BY `position` DESC»;
ΠΠ»ΡΠ΄Ρ Π½Π° Π·Π°ΠΏΡΠΎΡ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΠΉ ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π· test.ru/?detail=4+OR+1
SELECT * FROM `news` WHERE `public`=’1′ AND `id`=4 OR 1 ORDER BY `position` DESC
ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΡΠ½ΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΠ»Π°ΡΡ 4-Π°Ρ Π½ΠΎΠ²ΠΎΡΡΡ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π·Π°ΠΏΡΠΎΡ Π²Π΅ΡΠ½ΡΠ» Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ, ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ±ΡΠ²Π°Π½ΠΈΡ ΡΠ²Π΅ΡΡ Ρ. Π ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π°ΡΠ° 4-Π°Ρ Π½ΠΎΠ²ΠΎΡΡΡ ΠΎΠΊΠ°Π·Π°Π»Π°ΡΡ ΡΠ°ΠΌΠΎΠΉ ΠΏΠ΅ΡΠ²ΠΎΠΉ, ΠΎΠ½Π° ΠΆΠ΅ ΠΈ Π²ΡΠ²Π΅Π»Π°ΡΡ ΠΊΠ°ΠΊ Π΄Π΅ΡΠ°Π»ΡΠ½Π°Ρ. Π’.Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅.
ΠΠ°ΡΠΈΡΠ° ΠΎΡ SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ (SQL Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠΉ)
ΠΠ°ΡΠΈΡΠ° ΠΎΡ Π²Π·Π»ΠΎΠΌΠ° ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡ ΠΏΡΠ°Π²ΠΈΠ»Ρ Β«Π΄ΠΎΠ²Π΅ΡΡΠΉ, Π½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΉΒ». ΠΡΠΎΠ²Π΅ΡΡΡΡ Π½ΡΠΆΠ½ΠΎ Π²ΡΡ β ΡΠΈΡΠ»Π°, ΡΡΡΠΎΠΊΠΈ, Π΄Π°ΡΡ, Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠΎΡΠΌΠ°ΡΠ°Ρ .
Π§ΠΈΡΠ»Π°
Π‘ΡΡΠΎΠΊΠΈ
$a=»ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ΠΊΡΡΠ° Ρ Π°ΠΏΠΎΡΡΡΠΎΡΠΎΠΌ ‘ «;
echo addslashes($a); //Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ: ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ΠΊΡΡΠ° Ρ Π°ΠΏΠΎΡΡΡΠΎΡΠΎΠΌ \’
ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ ΡΠΊΡΠ°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΡΠΎΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
Π² SQL Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ
.
ΠΡΠΎ mysql_escape_string($str); ΠΈ mysql_real_escape_string($str);.
ΠΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ
ΠΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ β ΡΡΡΠ΅ΠΊΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°ΠΌΠ΅Π½Ρ ΠΊΠ°Π²ΡΡΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ ΡΠ»ΡΡ (\) ΠΈ ΠΊΠ°Π²ΡΡΠΊΡ ΠΏΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ PHP ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π²ΠΊΠ»ΡΡΡΠ½, Π° Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Ρ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ ΡΠΊΡΠ°Π½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈ Π·Π°ΡΠΊΡΠ°Π½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ-Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΠ΅ΡΠ΅Π· mysql_real_escape_string($str);, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ±ΡΠ°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ ΡΠ»Π΅ΡΠΈ (Π΅ΡΠ»ΠΈ ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ).
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΠΊΠ»ΡΡΡΠ½Π½ΠΎΡΡΠΈ ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠ°Π²ΡΡΠ΅ΠΊ Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΈΠ· GET, POST ΠΈΠ»ΠΈ ΠΡΠΊΠΎΠ² ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΡΠ½ΠΊΡΠΈΡ get_magic_quotes_gpc(); (Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 1 β Π΅ΡΠ»ΠΈ ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ, 0 β Π΅ΡΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Ρ).
Π Π·Π°ΠΊΡΡΠ΅Π½ΠΈΠΈ ΠΏΡΠΈΠ²ΠΎΠΆΡ ΠΊΠΎΠ΄ Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠΊΡΠ°Π½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΡΡΠΎΠΊ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π² ΠΠ
if(get_magic_quotes_gpc()==1)
<
$element_title=stripslashes(trim($_POST[«element_title»]));
$element_text=stripslashes(trim($_POST[«element_text»]));
$element_date=stripslashes(trim($_POST[«element_date»]));
>
else
<
$element_title=trim($_POST[«element_title»]);
$element_text=trim($_POST[«element_text»]);
$element_date=trim($_POST[«element_date»]);
>
$element_title=mysql_real_escape_string($element_title);
$element_text=mysql_real_escape_string($element_text);
$element_date=mysql_real_escape_string($element_date);
Π‘ΡΠ°ΡΡΡ Π±ΡΠ»Π° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π½Π°Π²ΡΠΊΠΎΠ² ΠΏΠΎ Π·Π°ΡΠΈΡΠ΅ Π²Π΅Π±-ΡΠΈΡΡΠ΅ΠΌ. Π’Π΅ΠΎΡΠΈΡ Π΄Π΅Π»ΠΎ Ρ ΠΎΡΠΎΡΠ΅Π΅, Π½ΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° Π²Π°ΠΆΠ½Π΅Π΅ ΠΈ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.