рд╣рдорд╛рд░реЗ рдпрд╣рд╛рдВ
рдлрд┐рд░ рд╕реЗ рд░реЗрд▓ рд╕рдореБрджрд╛рдп рдореЗрдВ рдПрдХ
рдирд╛рдЯрдХ рд╣реИред
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░рд┐рдкреЛрд░реНрдЯ Find_by_ * рдЬреИрд╕реА рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ рдЬреЛ find_by_title рдореЗрдВ рдореЙрдбрд▓ рдкрд░ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, find_by_idред
рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рддрд░рд╣ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
find_by_id (params [: id], рдЪреБрдиреЗрдВ: "CUSTOM SQL")
рд▓реЗрдХрд┐рди рдЖрдорддреМрд░ рдкрд░ рд╡реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
find_by_id (params [: id])
рдФрд░ SQL рдЗрдВрдЬреЗрдХреНрд╢рди рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм params [: id] рдореЗрдВ {: select => "CUSTOM SQL"} рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИ - рд╡рд┐рдХрд▓реНрдк рдкрд╣рд▓реЗ рддрд░реНрдХ рдореЗрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдиреЛрдЯ -: рдЪрдпрди рдПрдХ рд╡рд░реНрдг рд╣реИ рдФрд░ "рдЪрдпрди" (рд╕реНрдЯреНрд░рд┐рдВрдЧ) рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЯреНрд░рд┐рдХ? Id [select] = SQL рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧреАред рдХреБрдВрдЬреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрдЧреАред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, Params HashWithIndifferentAccess рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИрд╢ рд╣реИред рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рдмрд╛рдж рд╕реЗ рдЪрд╛рдмреА рдореЗрдВ рдЕрдХреНрд╖рд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╡реЗ рд╕рднреА рд╕реГрд╖реНрдЯрд┐ рдореЗрдВ рдирд╖реНрдЯ рд╣реЛ рдЧрдП рд╣реИрдВред
рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдУрдЯреЛрд▓реЙрдЬрд┐рдХрд▓ рдордгрд┐ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдпрд╣ find_by_token (рдЯреЛрдХрди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЯреЛрдХрди рд╕рддреНрд░ рд╕реЗ рд╡рд╕реНрддреБ рд╣реИ (рдЬрд┐рд╕реЗ рдХреБрдХреАрдЬрд╝ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ session_secret рджреНрд╡рд╛рд░рд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП: рдЗрд╕рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ => "рдПрд╕рдХреНрдпреВрдПрд▓", рдЖрдкрдХреЛ рд╕реЗрд╢рди_рд╕рд░реНрдХрд┐рдЯ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рднреЗрджреНрдпрддрд╛ рдЕрддреНрдпрдВрдд рджреБрд░реНрд▓рдн рд╣реИред
рдпрд╣ рд╕рдм SQL рдЗрдВрдЬреЗрдХреНрд╢рди CVE рдПрдХ рд▓рд╛рдирдд рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ! рдФрд░ рдХрд┐рд╕ рдкрдж рдХреЗ рд▓рд┐рдП? DoS!
рдореИрдВрдиреЗ рдЕрднреА рдЖрдЧреЗ рдЦреБрджрд╛рдИ рд╢реБрд░реВ рдХреА, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ
рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЖрджрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд░реЗрд▓реЗрдВ рддреАрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрд░реЛрдз рд▓реЗрддреА рд╣реИрдВред рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐: XML, JSON, x-www-form-urlencoded рд╣реИред рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡рд┐рд╢рд╛рд▓ рдмрд╣реБрдордд рдмрд╛рдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдкреНрд░рдкрддреНрд░ рдХреБрдВрдЬреА рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ = val & key2 = val2 рд▓реЗрдХрд┐рди рдпрджрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрд╡рд╢реНрдпрдХ рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рднреЗрдЬрддрд╛ рд╣реИ, рддреЛ рдПрдХ рдЕрдиреНрдп рдкрд╛рд░реНрд╕рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - XML тАЛтАЛ/ JSON рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ YAML рд▓реЗрдХрд┐рди рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдВрдж рд╣реИред
рдФрд░ рдПрдХреНрд╕рдПрдордПрд▓ рд▓рдЪреАрд▓рд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг - рдпрджрд┐ рдЖрдк рднреЗрдЬрддреЗ рд╣реИрдВ
<id type="symbol">all</id>
рддрдм рдЦреЛрдЬ (params [: id]) рдХреЛрдб рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдЧрд╛ (рдЬреИрд╕реЗ: рд╕рднреА)
рдпрд╛
<id type="yaml">---....</id>
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдкрд╛рддреНрд░реЛрдВ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ - рд╡рд░реНрдг рдЬреАрд╕реА рджреНрд╡рд╛рд░рд╛ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдВрд╕реЛрд▓ рд╕реЗ рдРрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд░реЗрд▓ рдХреЛ "рдСрдлреЗрдВрдб" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рддрд╛рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдбрд┐рд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рд╣реЛ)ред рдПрдХ рд╕реНрдерд╛рдиреАрдпрд╣реЛрд╕реНрдЯ рдкрд░ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рд░реВрдмреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдореЛрд░реА рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░реЗрдВред
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкреИрдЪред рдЖрд░рдЖрд░рдмреА рдЬреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкрд╛рд░реНрд╕рд░реНрд╕ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛
ActionDispatch :: ParamsParser :: DEFAULT_PARSERS = {}
PS
рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдирд╣реАрдВ рд╣реИ (JSON / XML рдкреЗрд▓реЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ [1, nil] рдХреЗ рд╕рд╛рде рдкреБрд░рд╛рдиреЗ CVE рдХрд╛ рдкреБрдирд░реБрджреНрдзрд╛рд░ рд╣реИ)