рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛрдбрдорд╛ рдХрдордЬреЛрд░реАрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рд░рд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ

Graudit рд▓реЗ рдзреЗрд░реИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ рд░ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рд╕реАрдзрд╛ рдХреЛрдбрдмреЗрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдкрд░реАрдХреНрд╖рдг рдПрдХреАрдХреГрдд рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛрдбрдорд╛ рдХрдордЬреЛрд░реАрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рд░рд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ
рд╕реНрд░реЛрдд: Unsplash (рдорд╛рд░реНрдХрд╕ рд╕реНрдкрд┐рд╕реНрдХреЗ)

рдкрд░реАрдХреНрд╖рдг рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдЬреАрд╡рди рдЪрдХреНрд░ рдХреЛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднрд╛рдЧ рд╣реЛред рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рдкреНрд░рдХрд╛рд░рдХрд╛ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЫрдиреН, рддрд┐рдиреАрд╣рд░реВрдордзреНрдпреЗ рдкреНрд░рддреНрдпреЗрдХрд▓реЗ рдЖрдлреНрдиреИ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрджрдЫред рдЖрдЬ рдо рдХреЛрдбрдорд╛ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреЗ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБред

рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛, рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕рдХреЛ рдЖрдзреБрдирд┐рдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛рд╣рд░реВрдорд╛, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫред рдПрдХ рд╕рдордпрдорд╛, рд╡рд┐рд╢реЗрд╖ рд╢рдмреНрдж DevSecOps рдкрдирд┐ рдкреЗрд╢ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдпреЛ рд╢рдмреНрджрд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╕рдирдорд╛ рдХрдордЬреЛрд░реАрд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрди рд░ рд╣рдЯрд╛рдЙрдиреЗ рдЙрджреНрджреЗрд╢реНрдпрдХрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛рд▓рд╛рдИ рдЬрдирд╛рдЙрдБрдЫред рдорд╛рдкрджрдгреНрдбрд╣рд░реВ рдЕрдиреБрд╕рд╛рд░ рдХрдордЬреЛрд░реАрд╣рд░реВ рдЬрд╛рдБрдЪреНрдирдХрд╛ рд▓рд╛рдЧрд┐ рддреНрдпрд╣рд╛рдБ рд╡рд┐рд╢реЗрд╖ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рдЫрдиреН OWASP, рдЬрд╕рд▓реЗ рд╕реНрд░реЛрдд рдХреЛрдбрдорд╛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░рдХрд╛ рдХрдордЬреЛрд░реАрд╣рд░реВ рд░ рд╡реНрдпрд╡рд╣рд╛рд░рдХреЛ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫред

рд╕реНрдерд┐рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реБрд░рдХреНрд╖рд╛ рдкрд░реАрдХреНрд╖рдг (SAST), рдбрд╛рдпрдирд╛рдорд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реБрд░рдХреНрд╖рд╛ рдкрд░реАрдХреНрд╖рдг (DAST), рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реБрд░рдХреНрд╖рд╛ рдкрд░реАрдХреНрд╖рдг (IAST), рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╕рдВрд░рдЪрдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рд░ рдпрд╕реНрддреИ рдЕрдиреНрдп рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд╡рд┐рднрд┐рдиреНрди рджреГрд╖реНрдЯрд┐рдХреЛрдгрд╣рд░реВ рдЫрдиреНред

рд╕реНрдерд┐рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реБрд░рдХреНрд╖рд╛ рдкрд░реАрдХреНрд╖рдгрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рд▓рд┐рдЦрд┐рдд рдХреЛрдбрдорд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрджрдЫред рдпреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд▓рд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди, рддреНрдпрд╕реИрд▓реЗ рдпрд╕рд▓рд╛рдИ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рднрдирд┐рдиреНрдЫред

рдо рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдорд╛ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдЧрд░реНрдиреЗрдЫреБ рд░ рд╡реНрдпрд╡рд╣рд╛рд░рдорд╛ рд╕рдмреИ рдХреБрд░рд╛ рджреЗрдЦрд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдЙрдкрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреБред

рдореИрд▓реЗ рд╕реНрдерд┐рд░ рдХреЛрдб рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдЙрдкрдХрд░рдг рдХрд┐рди рд░реЛрдЬреЗрдВ

рдпрд╕рдХрд╛ рдзреЗрд░реИ рдХрд╛рд░рдгрд╣рд░реВ рдЫрдиреН: рдкрд╣рд┐рд▓реЛ, рдпреЛ рдирд┐:рд╢реБрд▓реНрдХ рдЫ рдХрд┐рдирднрдиреЗ рддрдкрд╛рдИрдВ рдЕрдиреНрдп рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдорджреНрджрдд рдЧрд░реНрди рдЪрд╛рд╣рдиреЗ рд╕рдорд╛рди рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рднрдПрдХрд╛ рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрдХреЛ рд╕рдореБрджрд╛рдпрджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЙрдкрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ рд╕рд╛рдиреЛ рдЯреЛрд▓реА рд╡рд╛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБрд╕рдБрдЧ рддрдкрд╛рдЗрдБрдХреЛ рдХреЛрдбрдмреЗрд╕рдХреЛ рд╕реБрд░рдХреНрд╖рд╛ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрди рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╕рдлреНрдЯрд╡реЗрдпрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреИрд╕рд╛ рдмрдЪрдд рдЧрд░реНрдиреЗ рдареВрд▓реЛ рдЕрд╡рд╕рд░ рдЫред рджреЛрд╕реНрд░реЛ, рдпрд╕рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рддрдкрд╛рдЗрдБрдХреЛ рд▓рд╛рдЧрддрд╣рд░реВ рдШрдЯрд╛рдЙрдБрджреИ, рдЫреБрдЯреНрдЯреИ DevSecOps рдЯреЛрд▓реА рднрд╛рдбрд╛рдорд╛ рд▓рд┐рдиреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рд▓рд╛рдИ рд╣рдЯрд╛рдЙрдБрдЫред

рд░рд╛рдореНрд░реЛ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдЙрдкрдХрд░рдгрд╣рд░реВ рд╕рдзреИрдВ рд▓рдЪрд┐рд▓реЛрдкрдирдХреЛ рд▓рд╛рдЧрд┐ рдмрдвреЗрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВрд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреЗрд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдиреНрдЫред рддреНрдпрд╕рдХрд╛рд░рдг, рддрд┐рдиреАрд╣рд░реВ рд▓рдЧрднрдЧ рдХреБрдиреИ рдкрдирд┐ рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд╡рд┐рд╕реНрддреГрдд рджрд╛рдпрд░рд╛ рдХрднрд░ред рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ рдХрд╛рдо рдЧрд░реНрджрд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рдирд┐рд░реНрдорд╛рдг рдЧрд░рд┐рдПрдХреЛ рдкреНрд░рдгрд╛рд▓реАрд╕рдБрдЧ рддреНрдпрд╕реНрддрд╛ рдЙрдкрдХрд░рдгрд╣рд░реВ рдЬрдбрд╛рди рдЧрд░реНрди рдзреЗрд░реИ рд╕рдЬрд┐рд▓реЛ рдЫред

рддрд░ рддрдкрд╛рдИрд▓реЗ рд░реЛрдЬреНрдиреБ рднрдПрдХреЛ рдЙрдкрдХрд░рдгрдорд╛ рдЙрдкрд▓рдмреНрдз рдирднрдПрдХреЛ рд╕реБрд╡рд┐рдзрд╛ рдЪрд╛рд╣рд┐рдиреЗ рдмреЗрд▓рд╛ рд╣реБрди рд╕рдХреНрдЫред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рддрдкрд╛рдЗрдБрд╕рдБрдЧ рдпрд╕рдХреЛ рдХреЛрдб рдлреЛрд░реНрдХ рдЧрд░реНрдиреЗ рд░ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдХреЛ рд╕рд╛рде рдпрд╕рдХреЛ рдЖрдзрд╛рд░рдорд╛ рддрдкрд╛рдЗрдБрдХреЛ рдЖрдлреНрдиреИ рдЙрдкрдХрд░рдг рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдиреЗ рдЕрд╡рд╕рд░ рдЫред

рдзреЗрд░реИ рдЬрд╕реЛ рдХреЗрд╕рд╣рд░реВрдорд╛ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╕рдлреНрдЯрд╡реЗрдпрд░рдХреЛ рд╡рд┐рдХрд╛рд╕ рд╕рдореБрджрд╛рдпрдмрд╛рдЯ рд╕рдХреНрд░рд┐рдп рд░реВрдкрдорд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рднрдПрдХреЛ рд╣реБрдирд╛рд▓реЗ, рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдПрдХрджрдо рдЪрд╛рдБрдбреЛ рд░ рдмрд┐рдиреНрджреБрдорд╛ рдЧрд░рд┐рдиреНрдЫ: рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдХрд╛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд░ рд╕реБрдЭрд╛рд╡рд╣рд░реВрдорд╛ рднрд░ рдкрд░реНрдЫрдиреН, рдЙрдиреАрд╣рд░реВрдХреЛ рд░рд┐рдкреЛрд░реНрдЯрд╣рд░реВрдорд╛ред рддреНрд░реБрдЯрд┐рд╣рд░реВ рднреЗрдЯрд┐рдП рд░ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рд╣рд░реВред

рдХреЛрдб рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ Graudit рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ

рддрдкрд╛рдИрдВ рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рднрд┐рдиреНрди рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ; рд╕рдмреИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдХреБрдиреИ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдЙрдкрдХрд░рдг рдЫреИрдиред рддрд┐рдиреАрд╣рд░реВрдордзреНрдпреЗ рдХреЗрд╣реАрдХрд╛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ OWASP рд╕рд┐рдлрд╛рд░рд┐рд╕рд╣рд░реВ рдкрд╛рд▓рдирд╛ рдЧрд░реНрдЫрдиреН рд░ рд╕рдХреЗрд╕рдореНрдо рдзреЗрд░реИ рднрд╛рд╖рд╛рд╣рд░реВ рдХрднрд░ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдЫрдиреНред

рдпрд╣рд╛рдБ рд╣рд╛рдореА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВ рдЧреНрд░реЗрдбрд┐рдЯ, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЬрд╕рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рд╣рд╛рдореНрд░реЛ рдХреЛрдбрдмреЗрд╕рдорд╛ рдХрдордЬреЛрд░реАрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫред рдпрд╕рд▓реЗ рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ, рддрд░ рдЕрдЭреИ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕реЗрдЯ рд╕реАрдорд┐рдд рдЫред Graudit grep рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдХреЛ рдЖрдзрд╛рд░рдорд╛ рд╡рд┐рдХрд╕рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬреБрди рдПрдХ рдкрдЯрдХ GNU рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд рдЬрд╛рд░реА рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред

рддреНрдпрд╣рд╛рдБ рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХрд╛ рд▓рд╛рдЧрд┐ рд╕рдорд╛рди рдЙрдкрдХрд░рдгрд╣рд░реВ рдЫрдиреН - рд╕реБрд░рдХреНрд╖рд╛рдХреЛ рд▓рд╛рдЧрд┐ рд░рдл рдЕрдбрд┐рдЯрд┐рдЩ рдЙрдкрдХрд░рдг (RATS), Securitycompass Web Application Analysis Tool (SWAAT), рдлреНрд▓рд╛рдлрд╛рдЗрдиреНрдбрд░ рд░ рдпрд╕реНрддреИред рддрд░ Graudit рдзреЗрд░реИ рд▓рдЪрд┐рд▓реЛ рдЫ рд░ рдиреНрдпреВрдирддрдо рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рдЫрдиреНред рдпрджреНрдпрдкрд┐, рддрдкрд╛рдЗрдБрд╕рдБрдЧ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╣реБрди рд╕рдХреНрдЫ рдЬреБрди Graudit рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд╕рдХреНрджреИрдиред рддреНрдпрд╕рдкрдЫрд┐ рддрдкрд╛рдЗрдБ рдпрд╣рд╛рдБ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдЦреЛрдЬреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдпрд╕ рд╕реВрдЪреАрдорд╛.

рд╣рд╛рдореА рдпреЛ рдЙрдкрдХрд░рдгрд▓рд╛рдИ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдПрдХреАрдХреГрдд рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ, рд╡рд╛ рдЪрдпрди рдЧрд░рд┐рдПрдХреЛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИ рдЙрдкрд▓рдмреНрдз рдЧрд░рд╛рдЙрди рд╕рдХреНрдЫреМрдВ, рд╡рд╛ рд╣рд╛рдореНрд░рд╛ рд╕рдмреИ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ рдПрдХреИ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред рдпреЛ рдкрдирд┐ рдЬрд╣рд╛рдБ Graudit рдХреЛ рд▓рдЪрдХрддрд╛ рдЦреЗрд▓ рдорд╛ рдЖрдЙрдБрдЫред рддреНрдпрд╕реИрд▓реЗ рдкрд╣рд┐рд▓реЗ рд░реЗрдкреЛ рдХреНрд▓реЛрди рдЧрд░реМрдВ:

$ git clone https://github.com/wireghoul/graudit

рдЕрдм рдпрд╕рд▓рд╛рдИ рдХрдорд╛рдгреНрдб рдврд╛рдБрдЪрд╛рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди Graudit рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдЩреНрдХ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВ

$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/graudit

.bashrc (рд╡рд╛ рдЬреБрдирд╕реБрдХреИ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓ рддрдкрд╛рдИрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рд░рд╣рдиреБ рднрдПрдХреЛ рдЫ) рдорд╛ рдЙрдкрдирд╛рдо рдердкреМрдВ:

#------ .bashrc ------
alias graudit="~/bin/graudit"

рд░рд┐рдмреБрдЯ:

$ source ~/.bashrc # OR
$ exex $SHELL

рд╕реНрдерд╛рдкрдирд╛ рд╕рдлрд▓ рднрдпреЛ рднрдиреЗ рдЬрд╛рдБрдЪ рдЧрд░реМрдВ:

$ graudit -h

рдпрджрд┐ рддрдкрд╛рдЗрдБ рдХреЗрд╣рд┐ рд╕рдорд╛рди рджреЗрдЦреНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рд╕рдмреИ рдареАрдХ рдЫред

рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛрдбрдорд╛ рдХрдордЬреЛрд░реАрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рд░рд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ

рдо рдореЗрд░реЛ рдЕрд╡рд╕реНрдерд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдиреЗрдЫреБред рдЙрдкрдХрд░рдг рдЪрд▓рд╛рдЙрдиреБ рдЕрдШрд┐, рдпрд╕рд▓рд╛рдИ рдореЗрд░реЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рднрд╛рд╖рд╛рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдбрд╛рдЯрд╛рдмреЗрд╕ рдкрд╛рд╕ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВ ~/gradit/signatures рдлреЛрд▓реНрдбрд░рдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рдЫрдиреН:

$ graudit -d ~/gradit/signatures/js.db

рддреНрдпрд╕реЛрднрдП, рдореИрд▓реЗ рдореЗрд░реЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯрдмрд╛рдЯ рджреБрдИ js рдлрд╛рдИрд▓рд╣рд░реВ рдкрд░реАрдХреНрд╖рдг рдЧрд░реЗрдВ, рд░ Graudit рд▓реЗ рдХрдиреНрд╕реЛрд▓рдорд╛ рдореЗрд░реЛ рдХреЛрдбрдорд╛ рдХрдордЬреЛрд░реАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНтАНрдпреЛ:

рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛрдбрдорд╛ рдХрдордЬреЛрд░реАрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рд░рд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ

рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛрдбрдорд╛ рдХрдордЬреЛрд░реАрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рд░рд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ

рддрдкрд╛рдИрдВ рдЖрдлреНрдиреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рддреНрдпрд╣рд┐ рддрд░рд┐рдХрд╛рдорд╛ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрди рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рддрдкрд╛рдИрд▓реЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВрдХреЛ рд╕реВрдЪреА рд╣реЗрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдпрд╣рд╛рдБ.

Graudit рдХрд╛ рдлрд╛рдЗрджрд╛ рд░ рдмреЗрдлрд╛рдЗрджрд╛рд╣рд░реВ

Graudit рд▓реЗ рдзреЗрд░реИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред рддрд╕рд░реНрде, рдпреЛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рд▓рд╛рдЧреА рдЙрдкрдпреБрдХреНрдд рдЫред рдпреЛ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдкрдорд╛ рдХреБрдиреИ рдкрдирд┐ рдирд┐: рд╢реБрд▓реНрдХ рд╡рд╛ рд╕рд╢реБрд▓реНрдХ рдПрдирд╛рд▓рдЧрд╣рд░реВрд╕рдБрдЧ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдЧрд░реНрди рд╕рдХреНрдЫред рд░ рдпреЛ рдзреЗрд░реИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ рдХрд┐ рдЕрдЭреИ рдкрдирд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрд╕реБрдзрд╛рд░рд╣рд░реВ рднрдЗрд░рд╣реЗрдХрд╛ рдЫрдиреН, рд░ рд╕рдореБрджрд╛рдпрд▓реЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдорд╛рддреНрд░ рд╣реЛрдЗрди, рдЕрдиреНрдп рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдкрдирд┐ рдорджреНрджрдд рдЧрд░реНрджрдЫ рдЬрд╕рд▓реЗ рдЙрдкрдХрд░рдг рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рдкреНрд░рдпрд╛рд╕ рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЫрдиреНред

рдпреЛ рдПрдХ рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг рд╣реЛ, рддрд░ рдЕрд╣рд┐рд▓реЗ рд╕рдореНрдо рдпрд╕рд▓реЗ рдХреЛрдбрдХреЛ рд╕рдВрджрд┐рдЧреНрдз рдЯреБрдХреНрд░рд╛рдХреЛ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╣реЛ рднрдиреЗрд░ рдареНрдпрд╛рдХреНрдХреИ рдЪрд┐рдирд╛рдЙрди рд╕рдХреНрджреИрдиред рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ Graudit рд╕реБрдзрд╛рд░ рдЧрд░реНрди рдЬрд╛рд░реА рд░рд╛рдЦреНрдЫрдиреНред

рддрд░ рдХреБрдиреИ рдкрдирд┐ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдпреЛ рдЬрд╕реНрддреИ рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдХреЛрдбрдорд╛ рд╕рдореНрднрд╛рд╡рд┐рдд рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдорд╛ рдзреНрдпрд╛рди рджрд┐рди рдЙрдкрдпреЛрдЧреА рдЫред

рд╕реБрд░реБ рд╣реБрдБрджреИтАж

рдпрд╕ рд▓реЗрдЦрдорд╛, рдореИрд▓реЗ рдХрдордЬреЛрд░реАрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреЗ рдзреЗрд░реИ рддрд░рд┐рдХрд╛рд╣рд░реВ рдордзреНрдпреЗ рдПрдЙрдЯрд╛ рдорд╛рддреНрд░ рд╣реЗрд░реЗрдБ - рд╕реНрдерд┐рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реБрд░рдХреНрд╖рд╛ рдкрд░реАрдХреНрд╖рдгред рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдЫ, рддрд░ рдпреЛ рдХреЗрд╡рд▓ рд╕реБрд░реБрд╡рд╛рдд рд╣реЛред рддрдкрд╛рдИрдВрдХреЛ рдХреЛрдбрдмреЗрд╕рдХреЛ рд╕реБрд░рдХреНрд╖рд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдердк рдЬрд╛рдиреНрдирдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдЖрдлреНрдиреЛ рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдЬреАрд╡рдирдЪрдХреНрд░рдорд╛ рдкрд░реАрдХреНрд╖рдгрдХрд╛ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдПрдХреАрдХреГрдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

рд╡рд┐рдЬреНрдЮрд╛рдкрдирдХреЛ рдЕрдзрд┐рдХрд╛рд░рдорд╛

рднрд░рдкрд░реНрджреЛ VPS рд░ рдЯреНрдпрд╛рд░рд┐рдл рдпреЛрдЬрдирд╛рдХреЛ рд╕рд╣реА рдЫрдиреЛрдЯрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЕрдкреНрд░рд┐рдп рд╕рдорд╕реНрдпрд╛рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╛рд╕рдмрд╛рдЯ рдХрдо рд╡рд┐рдЪрд▓рд┐рдд рд╣реБрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫ - рд╕рдмреИ рдЪреАрдЬрд╣рд░реВ рд╡рд┐рдлрд▓рддрд╛ рдмрд┐рдирд╛ рд░ рдзреЗрд░реИ рдЙрдЪреНрдЪ рдЕрдкрдЯрд╛рдЗрдордХреЛ рд╕рд╛рде рдХрд╛рдо рдЧрд░реНрдиреЗрдЫ!

рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛрдбрдорд╛ рдХрдордЬреЛрд░реАрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рд░рд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди