Google рд╢реИрд▓реА рдХреА рд╕реБрд░рдХреНрд╖рд╛



Google I / O 2019 рдХреА рдореГрддреНрдпреБ рд╣реЛ рдЧрдИ рд╣реИ рдФрд░ рдпрд╣ рд╕рдордп рд╣реИ рдПрдХ рдирдИ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдирдИ рдЪреАрдЬреЗрдВ рд╕реАрдЦреЗрдВред рдЪреВрдВрдХрд┐ рдореБрдЭреЗ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдЬреЗрдЯрдкреИрдХ рдкрд░рд┐рд╡рд╛рд░ рдореЗрдВ рдирдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ - рд╕реБрд░рдХреНрд╖рд╛-рдХреНрд░рд┐рдкреНрдЯреЛ ред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдбреЗрдЯрд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рд╛рде рд╣реА рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИред


рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдкреГрд╖реНрдарднреВрдорд┐


рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдбреЗрдЯрд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╣рдореЗрд╢рд╛ рдмрд╣реБрдд рдЪрд░реНрдЪрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдХреМрди рд╕рд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЪреБрдирдирд╛ рд╣реИ? рдХреНрдпрд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП? рдкреИрдбрд┐рдВрдЧ рдХреНрдпрд╛ рд╣реИ? рдХрд╣рд╛рдБ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВ рдХреБрдВрдЬреА? рдпрд╣ рд╕рдм рд╕реАрдЦрдирд╛ рдФрд░ рдЕрдкрдиреЗ рдЬреНрдЮрд╛рди рдХреЛ рдЕрджреНрдпрддрд┐рдд рд░рдЦрдирд╛ рдФрд╕рдд рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХрд╣рд╛рдиреА рдЕрдХреНрд╕рд░ рддреАрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИ:


  • рд╕реНрдЯреИрдХрдУрд╡рд░рдлрд╝реНрд▓реЛ рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рд╕рдорд╛рдзрд╛рди рдХреА рдХреЙрдкреА-рдкреЗрд╕реНрдЯ
  • рдмрд╛рдж рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рд░реЗрдХ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде "рдЙрдкрдпреБрдХреНрдд рдореИрдиреБрдЕрд▓" рдХреА рдЦреЛрдЬ рдХрд░реЗрдВ
  • "рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╣реЛрдЧрд╛!" рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреА рд╕рдХреНрд░рд┐рдпрддрд╛

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


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


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


рдЗрд╕ рд╢рд╣рд░ рдХреЛ рдПрдХ рдирдП рдирд╛рдпрдХ рдХреА рдЬрд░реВрд░рдд рд╣реИ


2018 рдХреА рдЧрд░реНрдорд┐рдпреЛрдВ рддрдХ рд╕рдм рдХреБрдЫ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдЪрд▓рд╛ рдЧрдпрд╛, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЯрд┐рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ Google рд╕реЗ рдРрд╕реА рд╢рд╛рдирджрд╛рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╕реАрдЦрдирд╛ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИред рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдХреБрдЫ рдЧрд▓рдд рдХрд░рдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЯрд┐рдВрдХ рдбреЗрд╡рд▓рдкрд░ рд╕реЗ AndroidKeystore рдХреЗ рд╕рд╛рде рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЪрд╛рдмрд┐рдпреЛрдВ рдФрд░ рд╕рд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред


рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдХреЗрд╡рд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдерд╛ред рдФрд░ рдпрд╣рд╛рдВ рдмрд╛рдЗрдирд░реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ рдмрд╣реБрдд рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╣реЛ рдЧрдИрдВ - рдПрдХ рдШрд░реЗрд▓реВ рдирд┐рд░реНрдорд╛рддрд╛ рд╕реЗ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬрд┐рд╕реЗ рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдпрд╣ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рднреА рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ - рдЗрд╕рдХреЗ рд▓рд┐рдП рдпрд╣ рджреЛ рдЗрдВрдЯрд░рдлреЗрд╕, KeyEnc рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдФрд░ ValueEnc рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди (рдХреНрд░рдорд╢рдГ рдХреБрдВрдЬреА рдФрд░ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП) рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ред


рдирддреАрдЬрддрди, рд╣рдордиреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдЗрди рджреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рдЦреБрд╢ рдереЗ рдХрд┐ рд╣рдорд╛рд░рд╛ рдХреЛрдб рдХреНрд▓реАрдирд░ рдФрд░ рд╕рдордЭрдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ред


рд╕реБрд░рдХреНрд╖рд╛-рдХреНрд░рд┐рдкреНрдЯреЛ



рдЕрдм Google рдиреЗ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдорд┐рд▓рдиреЗ рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдХреЗ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЙрдирдХреЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде рдорджрдж рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЬреЗрдЯрдкреИрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдШреЛрд╖рдгрд╛ рдХреА рдЧрдИред рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╡рд╣рд╛рдВ рдЗрддрдирд╛ рдХреНрд░рд╛рдВрддрд┐рдХрд╛рд░реА рдХреНрдпрд╛ рд▓рд┐рдЦрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдкреНрд░рд▓реЗрдЦрди рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрдврд╝ рдЧрдпрд╛ (рдмрд┐рдЧрд╛рдбрд╝рдиреЗ рд╡рд╛рд▓рд╛: рдпрд╣ рдирд╣реАрдВ рд╣реИ)ред рдореБрдЭреЗ рдХреЗрд╡рд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрдХреНрд╖рд╛рдУрдВ рдкрд░ javadoc рдорд┐рд▓рд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рднреА рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХреБрдЫ рдЕрд╡рд╕рд░ рд╣реИрдВ: рдлрд╝рд╛рдЗрд▓ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди, рд╕рд╛рдЭрд╛рдХрд░рдг рдФрд░ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ред


рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдХреБрдЫ рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рд▓рд┐рдЦреЗ:


рдлрд╝рд╛рдЗрд▓ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди
val file = File(filesDir, "super_secure_file") val encryptedFile = EncryptedFile.Builder(file, this, "my_secret_key", EncryptedFile.FileEncryptionScheme.AES256_GCM_HKDF_4KB) .setKeysetAlias("my_test_keyset_alias") .setKeysetPrefName("keyset_pref_file") .build() val outputStream = encryptedFile.openFileOutput() outputStream.use { it.write("secret info".toByteArray()) } 

SharedPreferences рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди
 val encryptedPreferences = EncryptedSharedPreferences.create( "super_secret_preferences", "prefrences_master_key", this, EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM ) encryptedPreferences.edit().putString("secret", "super secret token") 

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


рдореБрдЭреЗ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реБрдИ рдХрд┐ рдЗрд╕ рдмрд╛рд░ Google рдиреЗ рдПрдХ рд╕рд╛рдЗрдХрд┐рд▓ рдореЛрдкреЗрдб рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдмрд▓реНрдХрд┐ рдЕрдкрдиреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдкреНрд░рдерд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЖрдЗрдП рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЬреЗрдЯрдкреИрдХ рдореЗрдВ рдЖрдпрд╛ security рдкреИрдХреЗрдЬ рдХреЗрд╡рд▓ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рддрдХ рд╣реА рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдмрд▓реНрдХрд┐ рдЖрдЧреЗ рднреА рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдЧрд╛ред


рдмрд╛рдЗрдирд░реАрдкреНрд░рд┐рдлрд░реЗрдВрд╕ + рдЯрд┐рдВрдХ рдмрдВрдбрд▓ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди
рд╕реБрд░рдХреНрд╖рд╛-рдХреНрд░рд┐рдкреНрдЯреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрд░реЛрдд рдХреЛрдб
рд╕реБрд░рдХреНрд╖рд╛-рдХреНрд░рд┐рдкреНрдЯреЛ рдбреЗрдореЛ

Source: https://habr.com/ru/post/hi452252/


All Articles