
рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░!
рд▓реЗрдЦ рдореЗрдВ рдореИрдВ Checkmarx SAST рдореЗрдВ рдЕрдкрдиреЗ рдкреНрд░рд╢реНрди рдмрдирд╛рдиреЗ рдХреЗ рд╣рдорд╛рд░реЗ рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдЬрдм рдЖрдк рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рдзрд╛рд░рдгрд╛ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ рдХрд┐ рдХрдордЬреЛрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди / рд╣реИрд╢рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдФрд░ рдЭреВрдареЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдХреЗ рдвреЗрд░ рдХреА рдЦреЛрдЬ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдХреБрдЫ рдФрд░ рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рдареАрдХ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рд╕реБрдкрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдЧрдВрднреАрд░ рдмрдЧ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд╣рдо Checkmarx SAST рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдХреА рдкреЗрдЪреАрджрдЧрд┐рдпреЛрдВ рдХреЛ рд╕рдордЭреЗрдВрдЧреЗ рдФрд░ SQL рдЗрдВрдЬреЗрдХреНрд╢рди рдФрд░ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░рддреНрдпрдХреНрд╖ рд╡рд╕реНрддреБ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 2 рдХреНрд╡реЗрд░реА рд▓рд┐рдЦреЗрдВрдЧреЗред
рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
рдЪреЗрдХрдорд░реИрдХреНрд╕ рдкрд░ рдХрд┐рд╕реА рднреА рдЧрд╛рдЗрдб рдпрд╛ рд▓реЗрдЦ рдХреА рд▓рдВрдмреА рдЦреЛрдЬ рдХреЗ рдмрд╛рдж, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд░реНрдпрд╛рдкреНрдд рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рдереАред рдФрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдпрд╣ рдирд╣реАрдВ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдХреЛрдИ рднреА рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕ рдирд╣реАрдВ рдорд┐рд▓рд╛, рдУрд╡рд░рд░рд╛рдЗрдб рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдХреНрд╡реЗрд░реА рдХреЛ "рдбрдореАрдЬрд╝ рдХреЗ рд▓рд┐рдП" рдХреИрд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рдП, рдЖрджрд┐, рд╣рд╛рдБ, рд╕реАрдПрдордПрдХреНрд╕ рдХреНрд╡реЗрд░реА рд▓реИрдВрдЧреНрд╡реЗрдЬ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдкрд░ рдкреНрд░рд▓реЗрдЦрди рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ рд╣реА рдХреНрд╡реЗрд░реА рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреНрд░рд▓реЗрдЦрди рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рд╣реИред
рд╢рд╛рдпрдж рдЪреЗрдХрдорд╛рд░реИрдХреНрд╕ рд╕рдореБрджрд╛рдп рдХреЗ рд▓реЗрдЦреЛрдВ рдФрд░ рдЧрд╛рдЗрдбреЛрдВ рдХреА рдХрдореА рдЙрдкрдХрд░рдг рдХреА рдЙрдЪреНрдЪ рд▓рд╛рдЧрдд рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИ рдФрд░, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдПрдХ рдЫреЛрдЯрд╛ рджрд░реНрд╢рдХред рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд╣реА рд▓реЛрдЧ рдлрд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рд╕реЗ рдкрд░реЗрд╢рд╛рди рд╣реЛрдВ рдФрд░ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред
рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдореЗрдВ, рдореИрдВ рдпрд╣ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмрдЧреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рдУрд░ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдФрдкрдЪрд╛рд░рд┐рдХрддрд╛рдУрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SAST рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдзрд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдорд╛рд░реЗ рдкрд╛рд╕, "рдХрдордЬреЛрд░рд┐рдпреЛрдВ" рдХреА рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХрдо рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдЬреЛ рд▓рдЧрднрдЧ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ "рд╢реЛрд╖рдХ рдирд╣реАрдВ" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ 99.9% рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣реИрдВ)ред
рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЪреЗрдХрдорд╛рд░рдХреНрд╕ рд╕реНрд╡рдпрдВ рдЕрдкрдиреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдЖрдЙрдЯ рдСрдл рдж рдмреЙрдХреНрд╕ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрдВред рд▓реЗрдХрд┐рди CMx рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдХреЗ рдкреНрд░рд╢реНрди "рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ" рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВред рдЯреЛрдХрди рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЦреЛрдЬ рдирд╛рдо рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, CMx SAST рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рднреА рдкреНрд░рд╢реНрди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ: * createQuery * рдпрд╛ * createSQLQuery *ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдХреЛ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП * driveMyQuery *, рддреЛ рд╕рднреА SQL рд╡рд┐рдзрд┐рдпрд╛рдВ рдЫреЛрдбрд╝ рджреА рдЬрд╛рдПрдВрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░рд╛ рдЧреНрд░рд╛рд╣рдХ SQL DB рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо ORM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ CMx рдХреНрд╡реЗрд░реАрдЬрд╝ рд╕рднреА SQL рдЗрдВрдЬреЗрдХреНрд╢рдиреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред
рд╕рдВрдХреЗрддрд╛рдХреНрд╖рд░ рдФрд░ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ
CMx -
рдЪреЗрдХрдорд╛рд░рдХреНрд╕ SASTред
CMxQL -
рдЪреЗрдХрдорд╛рд░рдХреНрд╕ SAST рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛
рдЯреЛрдХрди - рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реЗрдХреНрд╕рд┐рдХрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рдХрд╛рдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ (рдЬрд┐рд╕реЗ рдЯреЛрдХрди рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)
рдкрд░реАрдХреНрд╖рдг рдЖрд╡реЗрджрди
рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдХреБрдЫ рдЬрд╛рд╡рд╛ рдХреЛрдб, рдПрдХ рдЫреЛрдЯрд╛ рдкрд░реАрдХреНрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдХреЗрдЪ рдХрд┐рдпрд╛ред рдпрд╣ рдХреЛрдб рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреА рдЕрдиреБрдорд╛рдирд┐рдд рдкреНрд░рддрд┐ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдХреЛрдб рдХрд┐рд╕реА рднреА рдЕрдиреНрдп HTTP рдмреИрдХрдПрдВрдб рдХреЛрдб рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХреЗ рдкреНрд░рдореБрдЦ рднрд╛рдЧ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред
рдкрд░реАрдХреНрд╖рдг рдЖрд╡реЗрджрди рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд░рдЪрдирд╛ рд╣реИ
рдЗрдирдХрдорд┐рдВрдЧ HTTP рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
WebRouter рдХреНрд▓рд╛рд╕; рдЕрдВрджрд░ рдпреВрдЖрд░рдПрд▓ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ 4 рддрд░реАрдХреЗ:
- / getTransaction - рдЗрдирдкреБрдЯ рдЖрдИрдбреА рдкрд░ рд▓реЗрдирджреЗрди рдЖрдИрдбреА рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИ, рдЖрдИрдбреА рдЗрд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ getTransactionInfo (transactionId) => getTransactionInfo (transactoinId) рдкрд░ рднреЗрдЬ рджреЗрддрд╛ рд╣реИ - SQL рдХреНрд╡реЗрд░реА (рдпрд╛рдиреА, SQL рдЗрдВрдЬреЗрдХреНрд╢рди рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ) рдХреЗ рд▓рд┐рдП TransIdate рдмрдирд╛рддрд╛ рд╣реИ;
- / getSecureTransaction - рд▓реЗрди-рджреЗрди рдЖрдИрдбреА рдХреЛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЖрдИрдбреА рдЗрд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдорд╛рдорд▓рд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХрд╛ рд╢реЛрд╖рдг рдирд╣реАрдВ рд╣реИ);
- / getSettings - рдПрдХ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ userId рдФрд░ iPodId рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ - рдФрд░ рдореЗрд▓рдмреЙрдХреНрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рдХрд┐ рдореЗрд▓рдмреЙрдХреНрд╕рд┐рдб рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рд╣реИ;
- / getSecureSettings - рднреА рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП userId рдФрд░ рдореЗрд▓рдмреЙрдХреНрд╕рдЖрдИрдб рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореЗрд▓рдмреЙрдХреНрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред BUT рдпрд╣ рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдореЗрд▓рдмреЙрдХреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддрд╛ рд╣реИред
CMx: рд╕рд╛рдорд╛рдиреНрдп рд╕реВрдЪрдирд╛ рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдкрд░рд┐рднрд╛рд╖рд╛
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ
рдХреНрд╡реЗрд░реА рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдПрдХ рдЕрд▓рдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдо CxAuditor рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред CxAuditor рдореЗрдВ рдЖрдкрдХреЛ рд╕рднреА рдХреЛрдб (рд╕реНрдерд╛рдиреАрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ) рдХреЛ рд╕реНрдХреИрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдХреНрд╡реЗрд░реАрдЬрд╝ рд▓рд┐рдЦреЗрдВрдЧреЗред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдирдП рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд▓рд┐рдЦ рдФрд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдмрдбрд╝реЗ рдХреЛрдб рдмреЗрд╕ рдХреЗ рд╕рд╛рде, рдкреНрд░рд╛рдердорд┐рдХ рд╕реНрдХреИрдирд┐рдВрдЧ рдореЗрдВ рдШрдВрдЯреЛрдВ рдХрд╛ рд╕рдордп рдФрд░ рд╕реНрдореГрддрд┐ рдХреЗ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯреНрд╕ рд▓рдЧ рд╕рдХрддреЗ рд╣реИрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рддреЗрдЬреА рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдкрдпреБрдХреНрдд рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдЖрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╕реЗрдЯ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдХреЛрдб рдореЗрдВ рдкрд╛рдП рдЧрдП рдмрдЧ рдХреЗ рд╕рд╛рде рдЬрд┐рд╕рдХреЗ рддрд╣рдд рд╣рдо рдПрдХ рдЕрдиреБрд░реЛрдз рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ (рдпрд╛ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдмрдЧ рдХреЛ рд╡рд╣рд╛рдВ рд░рдЦреЗрдВ) рдФрд░ рдХреЗрд╡рд▓ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдЗрд╕ рд╕реЗрдЯ рдХреЛ рд╕реНрдХреИрди рдХрд░реЗрдВред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдпрд╣реА рд╣реИ, рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬрд╛рд╡рд╛ рдкреИрдХреЗрдЬ рдП рдФрд░ рдмреА рд╣реИ, рдФрд░ рдкреИрдХреЗрдЬ рдмреА рдореЗрдВ рдХрдХреНрд╖рд╛рдПрдВ рдП рдХреЗ рд╡рд░реНрдЧреЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ, рддреЛ рдЖрдк рдпрд╣ рд╕рдм рдПрдХ рд╣реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕реАрдПрдордПрдХреНрд╕ рдЕрднреА рднреА рд░рд┐рд╢реНрддреЛрдВ рдХреЛ рд╕рдордЭреЗрдВрдЧреЗ рдФрд░ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдмреАрдЪ рдХреЙрд▓ рдЪреЗрди рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╛ рд▓рдЧрднрдЧ) рдмрдирд╛рдПрдВрдЧреЗред рд╣рдореЗрд╢рд╛ рд╕рд╣реА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╢рд╛рдпрдж рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ)ред
рдореВрд▓ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ
CxList
CMx рдореЗрдВ рдореБрдЦреНрдп рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ред рд▓рдЧрднрдЧ рд╕рднреА CMxQL рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдкрд░рд┐рдгрд╛рдо CxList рд╣реЛрдЧрд╛ред рдпрд╣ рдХреБрдЫ рдЧреБрдгреЛрдВ рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реИред рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рдЧреБрдгреЛрдВ рдХреЛ рдиреАрдЪреЗ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред
рдкрд░рд┐рдгрд╛рдо
CMxQL рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЪрд░
рдкрд░рд┐рдгрд╛рдо рд╣реИ ред рд╡рд╣ рд╕реЗрдЯ рдЬрд┐рд╕рдореЗрдВ
рдкрд░рд┐рдгрд╛рдо рдЪрд░ рд╣реЛрддрд╛ рд╣реИ, рд╕рдВрдкреВрд░реНрдг рдХреНрд╡реЗрд░реА рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЕрд░реНрдерд╛рддреН, рдХрд┐рд╕реА рднреА рдкреНрд░рд╢реНрди рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдВрдЪрд╛рд▓рди рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдкрд░рд┐рдгрд╛рдо = рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
result = All.FindByName("anyname");
рдкреНрд░рд╡рд╛рд╣ рдФрд░ рдХреЛрдб рддрддреНрд╡
рд▓реМрдЯреЗ рд╣реБрдП рдорд╛рдиреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ CMxQL рдХрд╛рд░реНрдп 2 рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ "рдХреЛрдб рдПрд▓рд┐рдореЗрдВрдЯреНрд╕" рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЬреЛ рдлреНрд▓реЛ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред рджреЛрдиреЛрдВ рд╣реА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдкрд░рд┐рдгрд╛рдо рдПрдХ
CxList рд╣реИ ред рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдлреНрд▓реЛ рдФрд░ рдХреЛрдб рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝реА рдЕрд▓рдЧ рд╣реЛрдЧреАред
- рдХреЛрдб рддрддреНрд╡ - рдЯреЛрдХрди - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЪрд░, рд╡рд┐рдзрд┐ рдХреЙрд▓, рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ, рдЖрджрд┐;
- рдкреНрд░рд╡рд╛рд╣ - рджрд┐рдП рдЧрдП рдЯреЛрдХрди рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзред
рд╕рднреА рдФрд░ "рдЙрдк" рд╕рднреА
рдкреНрд░рддреНрдпреЗрдХ CMxQL рдлрд╝рдВрдХреНрд╢рди рдХреЛ
рд╕рднреА рд╕реЗрдЯ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЗрд╕рдореЗрдВ рд╕рдВрдкреВрд░реНрдг рд╕реНрдХреИрди рдХреЛрдб рдХреЗ рд╕рднреА рдЯреЛрдХрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА
рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрд╛) рдпрд╛
CxList рд╕реЗрдЯ рдкрд░, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдХреНрд╡реЗрд░реА рдореЗрдВ рдХреБрдЫ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд╡реЗрд░реА:
CxList newList = CxList.New();
рдПрдХ рдЦрд╛рд▓реА рд╕реЗрдЯ рдмрдирд╛рдПрдЧрд╛, рдЬрд┐рд╕реЗ рд╣рдо рдлрд┐рд░
рдРрдб () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрддреНрд╡реЛрдВ рд╕реЗ рднрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдирдП рд╕реЗрдЯ рдХреЗ рддрддреНрд╡реЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЦреЛрдЬ рд╕рдХрддреЗ рд╣реИрдВ:
CxList newFind = newList.FindByName("narrowedScope");
рдкрд╛рдпрд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреБрдг
CxList рд╕реЗрдЯ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдореЗрдВ рдХрдИ рдЧреБрдг рд╣реЛрддреЗ рд╣реИрдВред рдкреНрд░рд╢реНрди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╕рдордп, рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИрдВ:
- SourceFile - рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реИ;
- рд╕реЛрд░реНрд╕ рд▓рд╛рдЗрди - рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрди рдирдВрдмрд░;
- рд╕реНрд░реЛрдд рдХрд╛ рдирд╛рдо - рдЯреЛрдХрди рдХрд╛ рдирд╛рдоред рд╕рдорддреБрд▓реНрдп рдЯреЛрдХрди, рдЕрд░реНрдерд╛рдд рдпрджрд┐ рдЪрд░ рдХреЛ var1 рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ Source Name = var1;
- рд╕реНрд░реЛрдд рдкреНрд░рдХрд╛рд░ - рдЯреЛрдХрди рдХрд╛ рдкреНрд░рдХрд╛рд░ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдпрд╣ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рддреЛ рдпрд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧрд▓рд┐рдЯрд░рд▓ рд╣реЛрдЧрд╛, рдпрджрд┐ рд╡рд┐рдзрд┐ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореЗрдердбрдЗрдирд╡реЛрдХ рдПрдХреНрд╕рдкреНрд░, рдФрд░ рдХрдИ рдЕрдиреНрдп;
- рдЧрдВрддрд╡реНрдп рдлрд╝рд╛рдЗрд▓
- рдЧрдВрддрд╡реНрдп рд░реЗрдЦрд╛;
- рдЧрдВрддрд╡реНрдп рдХрд╛ рдирд╛рдо;
- рдЧрдВрддрд╡реНрдп рдкреНрд░рдХрд╛рд░ред
рд╕реНрд░реЛрдд рдФрд░ рдЧрдВрддрд╡реНрдп рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдВрдЧреЗ рдпрджрд┐ рдкрд░рд┐рдгрд╛рдо рд╕реЗрдЯ рдХреЗ рддрддреНрд╡ рдкреНрд░рд╡рд╛рд╣ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рд╡реЗ рдореЗрд▓ рдХрд░реЗрдВрдЧреЗ рдпрджрд┐ рдкрд░рд┐рдгрд╛рдо рдХреЛрдб рддрддреНрд╡ рд╣реИрдВред
рдкреНрд░рд╢реНрди рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ
рд╕рднреА CMxQL рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрдИ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдХреЛрдИ рднреА CMxQL рдкреНрд░рд▓реЗрдЦрди рдХреА рдореБрдЦреНрдп рдЦрд╛рдореА рдХреЛ рдиреЛрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЧреЛрджреА рдореЗрдВ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рд╡рд░реНрдгрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрд░рдЪрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ рдФрд░ рдХреЗрд╡рд▓ рддрдм рд╡рд░реНрдгрд╛рдиреБрдХреНрд░рдо рдореЗрдВред
- рдЦреЛрдЬ рдХрд╛рд░реНрдп - FindBy * рдФрд░ GetBy * рдирд╛рдо рдХреЗ рд╕рд╛рде рд▓рдЧрднрдЧ рд╕рднреА CMxQL рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ;
- рд╕реЗрдЯ рдкрд░ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдХрд╛рд░реНрдп рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реИрдВ, рдШрдЯрд╛рд╡, рдЪреМрд░рд╛рд╣реЗ, рддрддреНрд╡реЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐, рдЖрджрд┐ред
- рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛рд░реНрдп - рдпреЗ рдореВрд▓ рд░реВрдк рд╕реЗ * InfluencedBy * * InfluencingOn * рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВред
рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЦреЛрдЬ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдХреЗрд╡рд▓ рдЙрди рдЯреЛрдХрди рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рдХреБрдЫ рдЧреБрдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рд╕реЗрдЯ рдкрд░ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯреЛрдХрди рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реЗрдЯ рдХреЛ рдПрдХ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдПрдХ рд╕реЗ рджреВрд╕рд░реЗ рдХреЛ рдШрдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░, рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдХреЛрдб рдлреНрд▓реЛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╕рдВрднрд╛рд╡рд┐рдд рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИрдВред
рдЙрд╕ рд╕реНрдерд╛рди рдХрд╛ рд╡рд┐рдХрд▓реНрдк, рдЬрд╣рд╛рдВ рд╕реЗ рдЦреЛрдЬ рд╢реБрд░реВ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рдВрдкреВрд░реНрдг рдЦреЛрдЬ рдкрде, рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЛрдб рдкрд░ рдФрд░ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ "рдкрд╛рда" рдкрд░ рднреА рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдХреБрдЫ рдореЗрдВ "рдЕрдВрдд" рдпрд╛ рдмреАрдЪ рд╕реЗ рднреА рд╢реБрд░реВ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдпрд╣ рд╕рдм рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЛрдб рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг: рдЦреЛрдЬ SQL рдЗрдВрдЬреЗрдХреНрд╢рди
рдЦреЛрдЬ рдпреЛрдЬрдирд╛, рдХреЛрд╖реНрдардХ рдореЗрдВ рдореИрдВрдиреЗ рд╕реЗрдЯ рдХреЗ рдирд╛рдо (рдХреНрд╡реЗрд░реА рдореЗрдВ рдЪрд░) рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛:
- рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ - рдЯреЛрдХрди рдЬрд┐рдиреНрд╣реЗрдВ рддреБрд░рдВрдд рдЦреЛрдЬ рд╕реНрдХреЛрдк ( рдмрд╣рд┐рд╖реНрдХрд░рдг рд╕реВрдЪреА ) рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ;
- рд╕реНрд╡рдЪреНрдЫрддрд╛ / рд╕реБрд░рдХреНрд╖рд╛ рдЬрд╛рдВрдЪ ( рд╕реНрд╡рдЪреНрдЫрддрд╛ ) рдХрд╛ рд╕реНрдерд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ;
- рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рд╛рде рд╕рднреА рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╕реНрдерд╛рди рдЦреЛрдЬреЗрдВ ( runSuperSecureSQLQuery );
- рд╕рднреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рддрд░реАрдХреЛрдВ рдХреЛ рдЦреЛрдЬреЗрдВ: runSuperSecureSQLQuery ( runSSSQParams );
- рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ (рдореВрд▓ рддрд░реАрдХреЗ рдФрд░ рдЙрдирдХреЗ рдкреИрд░рд╛рдореАрдЯрд░) рдЦреЛрдЬреЗрдВ ( entryPointsParameters );
- рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБрдУрдВ рдкрд░ runSSSQParams рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ, рдЬрдмрдХрд┐ рдХреЗрд╡рд▓ рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЬрд╣рд╛рдВ рдЗрдирдкреБрдЯ рд╕реИрдирд┐рдЯрд╛рдЗрдЬреЗрд╢рди рдХрд╛ рдХреЛрдИ рд╕рдВрдХрд░рдг рдирд╣реАрдВ рд╣реИред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ SQL рдХреНрд╡реЗрд░реАрдЬрд╝ рдХреЗ рд╕рд╛рде рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╡рд┐рдзрд┐рдпрд╛рдБ рдорд┐рд▓рддреА рд╣реИрдВ, рдЬрд╣рд╛рдБ SQL рдХреНрд╡реЗрд░реА рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░:
- рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░;
- рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
- рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдорд╛рдкреНтАНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╣рдо рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЪрд░ рдХреЛ рдХреНрд╡реЗрд░реА рдореЗрдВ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рд╣реИ рдФрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд╕реНрдЯ рд╣реИ, рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрдпреЛрдЬрди рд╣рдореЗрд╢рд╛ рдЦрддрд░рдирд╛рдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЕрдм рд▓рд╛рдЗрди рдкрд░ рдХреЛрдИ рдирд┐рдпрдВрддреНрд░рдг рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирдИ рд░рд┐рд▓реАрдЬ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреА рд╣реИред
SQLi: рдЪрд░рдг 1ред рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛
рдЕрдкрд╡рд╛рджреЛрдВ рдореЗрдВ, рдЖрдкрдХреЛ рдЙрди рдХрдХреНрд╖рд╛рдУрдВ рдпрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд╣рд╛рдВ рдЯреЛрдХрди рдХреЗ рдирд╛рдо рдЙрди рд▓реЛрдЧреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдвреВрдВрдв рд░рд╣реЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рдЯреЛрдХрди рдЕрдорд╛рдиреНрдп рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдЬрдиреНрдо рджреЗрдВрдЧреЗред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ
runSuperSecureSQLquery рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐
рд░рдирд╕реБрдкрд░рд╕реБрд░рдХреНрд╕реЗрд╕рдХреНрд╡реЗрдпрд░ рд╡рд┐рдзрд┐ рдЕрдВрджрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рд╣реИред рдФрд░ рд╣рдорд╛рд░рд╛ рдХрд╛рдо рдЙрди рдЬрдЧрд╣реЛрдВ рдХреЛ рдвреВрдВрдврдирд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИред SQL рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдирд┐рдпрдВрддреНрд░рд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рдВрдШрдирди рдХреЗ рд╕реНрдерд╛рди рд╕реБрд░рдХреНрд╖рд┐рдд рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд - ORM рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдорд╛рдирдЪрд┐рддреНрд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЗрд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдХрд▓рд╛рдХрд╛рд░ рд╣реИред рд╣рдореЗрдВ рдЙрди рд╕рднреА рдХреЛрдб рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ
runSuperSecureSQLquery рдХреА рддреБрд▓рдирд╛ рдореЗрдВ "рдЕрдзрд┐рдХ рдЧрд╣рд░рд╛" рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдмреЗрдХрд╛рд░ рдкрд╛рдпрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдмрд╛рд╣рд░ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
рдРрд╕реЗ рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CMxQL рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ:
- FindByFileName () - рдПрдХ рд╡рд┐рд╢реЗрд╖ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рднреА рдЯреЛрдХрди рдХрд╛ рд╕реЗрдЯ рдорд┐рд▓реЗрдЧрд╛;
- GetByClass () - рджрд┐рдП рдЧрдП рдирд╛рдо рдХреЗ рд╕рд╛рде рдХрдХреНрд╖рд╛ рдореЗрдВ рд╕рднреА рдЯреЛрдХрди рдХрд╛ рд╕реЗрдЯ рдорд┐рд▓реЗрдЧрд╛ред
рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЕрдкрд╡рд╛рдж
рд╕рддреНрд░ рд╡рд░реНрдЧ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ
рд░рдирд╕реБрдкрд░рд╕реЗрдХреЗрдпрд░рдХреНрдпреВрдХреНрд▓реЗрд░реА рдкрджреНрдзрддрд┐ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╢рд╛рдорд┐рд▓ рд╣реИред
рд╕рддреНрд░ рдХрдХреНрд╖рд╛ рдореЗрдВ рдХреЛрдб рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдз рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг (
GetByClass () рд╡рд┐рдзрд┐
рдпрд╣ рдЬрд╛рдВрдЪ
рдХрд░реЗрдЧреА рдХрд┐ рдЗрдирдкреБрдЯ рдореЗрдВ рдЙрддреНрддреАрд░реНрдг рдХрд┐рдП рдЧрдП рдЯреЛрдХрди рдореЗрдВ рдХреМрди рд╕реА рдХреНрд▓рд╛рд╕ рдХрд╛ рд╕реАрдПрдордПрдХреНрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ рдФрд░ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЯреЛрдХрди рдЬрд╛рд░реА рдХрд░реЗрдЧрд╛)
CxList exclusionList = All.GetByClass(All.FindByName("*Session*")); result = exclusionList;
рдпрд╛ рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдкреВрд░реЗ
рд╕рддреНрд░ рдореЗрдВ рдХреЛрдб рдлреЗрдВрдХрдирд╛ рд╣реИред
рдЬрд╛рд╡рд╛ рдлрд╛рдЗрд▓:
CxList exclusionList = All.FindByFileName("*Session.java"); result = exclusionList;
рдирд╛рдо рд╕реЗ рдкрд╣рд▓реЗ рддрд╛рд░рд╛рдВрдХрди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдореЗрдВ рд╕рдВрдкреВрд░реНрдг рдкрде рд╢рд╛рдорд┐рд▓ рд╣реИред
рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рдЯреЛрдХрди рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЦреЛрдЬ рджрд╛рдпрд░реЗ рд╕реЗ рдЕрдЧрд▓реЗ рдЪрд░рдгреЛрдВ рдореЗрдВ рдШрдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рддреНрд░ рд╡рд░реНрдЧ рдХреЗ рдЕрдВрджрд░ рдЯреЛрдХрди рдХреА рдЦреЛрдЬ рдХрд╛ рдкрд░рд┐рдгрд╛рдо:

SQLi: рдЪрд░рдг 2ред рд╕реНрд╡рдЪреНрдЫрддрд╛ рд╕реНрдерд╛рдиреЛрдВ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг
рдкрд░реАрдХреНрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ 2 рдПрдкреАрдЖрдИ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВ (рдкрд░реАрдХреНрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рджреЗрдЦреЗрдВ)ред рджреЛ API рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐
getTransactionInfo () SQL рдХреНрд╡реЗрд░реА рдореЗрдВ transactionId рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ
рдорд┐рд▓рд╛рддрд╛ рд╣реИ , рдФрд░
getTransactionInfoSecured () рдкрд╣рд▓реЗ
TransId рдХреЛ Long рдореЗрдВ
рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ , рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рднреЗрджреНрдпрддрд╛ (рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдВрдШрдирди) рджреЛрдиреЛрдВ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реИред рд▓реЗрдХрд┐рди
getTransactionInfoSecured () рдореЗрдВ рд▓реЙрдиреНрдЧ рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЕрдВрддрд┐рдо рд╡рд┐рдзрд┐ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рд╣рдо рдПрдХ рдЗрдВрдЬреЗрдХреНрд╢рди (рд╕реНрдЯреНрд░рд┐рдВрдЧ) рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдореЗрдВ рдПрдХ рдЬрд╛рд╡рд╛ рдЕрдкрд╡рд╛рдж рдорд┐рд▓рддрд╛ рд╣реИред
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдХрд▓рд╛рдХрд╛рд░реЛрдВ рдХреЛ рд▓рд╛рдВрдЧ рдХреЛ рд╕реНрд╡рдЪреНрдЫрддрд╛ рд╕реНрдерд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреЗрдВрдЧреЗред рдЗрди рдЯреЛрдХрди рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП:
CxList sanitization = All.FindByName("*Long*"); result = sanitization;
рдЙрджрд╛рд╣рд░рдг рдкрд░рд┐рдгрд╛рдо:

рдкрд░рд┐рдгрд╛рдо рдореЗрдВ YP рдкреНрд░рдХрд╛рд░
рд▓рд╛рдВрдЧ рдХреЗ рд╕рд╛рде рдЯреЛрдХрди рд╢рд╛рдорд┐рд▓ рдереЗ рдФрд░
getValueAsLong рд╡рд┐рдзрд┐рдпрд╛рдБ, рдЬреЛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ
Long рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ
рд▓рд┐рдП рдорд╛рди рдХреЛ
рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреА рд╣реИрдВ ред рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдо рдХреА рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЬрд╝рд░реВрд░рдд рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдирд╣реАрдВ рд╣реИред
SQLi: рдЪрд░рдг 3. рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рд╛рде рд╕рднреА рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╕реНрдерд╛рдиреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд╡реЗрд░реА рдХреЛ рд░рдирд╕реБрдкрд░рд╕реБрд░ SQLSQL рдЯреЛрдХрди (рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рд╕реНрдерд╛рди рдорд┐рд▓реЗрдВрдЧреЗ:
result = All.FindByName("*runSuperSecureSQLQuery*")
рдЯреЛрдХрди рдирд╛рдо runSuperSecureSQLQuery рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдо:

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ (
рдмрд┐рд▓рд┐рдВрдЧ рд╡рд░реНрдЧ) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рд╡рд┐рдзрд┐ рдордВрдЧрд▓рд╛рдЪрд░рдг рдЯреЛрдХрди (рдкреНрд░рдХрд╛рд░
MethodInvokeExpr ) рдкрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╡рд┐рдзрд┐ рдШреЛрд╖рдгрд╛ рд╕реНрдерд╛рди (
рд╕рддреНрд░ рд╡рд░реНрдЧ) рдХреЗ рд▓рд┐рдП, рд╕рднреА рдЯреЛрдХрди - рдЪрд░ рднреА рдорд┐рд▓реЗрдВрдЧреЗред
рд╣рдо рдХреЗрд╡рд▓ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдЯреЛрдХрди рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддреЗ рд╣реИрдВ:
CxList runSuperSecureSQLQuery = All.FindByName("*runSuperSecureSQLQuery*").FindByType(typeof(MethodInvokeExpr)); result = runSuperSecureSQLQuery;
рдкрд░рд┐рдгрд╛рдо:

рдирддреАрдЬрддрди, рд╣рдореЗрдВ 7 рд╕реНрдерд╛рди рдорд┐рд▓реЗ, рдЙрдирдореЗрдВ рд╕реЗ 4 рдХреЛ
рд░рдирд╕реБрдкрд░рд╕реЗрдХреНрдпреЛрд░рдПрд╕рдбреАрдХреНрдпреВрдИ () рд╡рд┐рдзрд┐ (
рдмрд┐рд▓рд┐рдВрдЧ рдФрд░
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд░реНрдЧ) рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХреЙрд▓ред 2 -
рд╕рддреНрд░ рд╡рд░реНрдЧ рдХреЗ рдЕрдВрджрд░ runSuperSecureSQLQuery () рдЖрдВрддрд░рд┐рдХ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдФрд░
рдРрдб рд╡рд┐рдзрд┐ рд╣реИ, рдЬреЛ рд╕реАрдПрдордПрдХреНрд╕рдХреНрдпреВрдПрд▓ рдЦреЛрдЬ рд╡рд┐рд╖рдорддрд╛ рдХреЗ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ рдореИрдВрдиреЗ рдпрд╣ рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХреА рдереА рдХрд┐ рдпрд╣ рд╕реВрдЪреА рдореЗрдВ рд╣реИ =)
рд╕рддреНрд░ рд╡рд░реНрдЧ рдореЗрдВ рдЯреЛрдХрди, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдореЗрдВ рдЪрд░рдг 1 рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрдиреНрд╣реЗрдВ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдШрдЯрд╛ рджреЗрдВрдЧреЗ:
CxList runSuperSecureSQLQuery = All.FindByName("*runSuperSecureSQLQuery*").FindByType(typeof(MethodInvokeExpr)); result = runSuperSecureSQLQuery - exclusionList;
рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХреА рдПрдХ рдорд╛рдиреНрдп рд╕реВрдЪреА рдорд┐рд▓рддреА рд╣реИ:

рдкрд┐рдЫрд▓реА рдХреНрд╡реЗрд░реА рдореЗрдВ
FindByType () рдФрд░
рдЯрд╛рдЗрдкреЛрдлрд╝ () рдлрд╝рдВрдХреНрд╢рди рдиреЛрдЯ рдХрд░реЗрдВред рдпрджрд┐ рд╣рдо
CxList рд╕рдВрдкрддреНрддрд┐ "рд╕реНрд░реЛрдд рдкреНрд░рдХрд╛рд░" рджреНрд╡рд╛рд░рд╛ CMx рдкреНрд░рдХрд╛рд░, рдЕрд░реНрдерд╛рдд рдЦреЛрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо
рдЯрд╛рдЗрдкреЛрдл (рд╕реНрд░реЛрдд рдкреНрд░рдХрд╛рд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдЦреЛрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
result = All.FindByType("String");
рдкреНрд░рдХрд╛рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рднреА рдЬрд╛рд╡рд╛ рдЯреЛрдХрди рдорд┐рд▓реЗрдВрдЧреЗред
SQLi: рдЪрд░рдг 4. RunSuperSecureSQLQuery рдирд╛рдордХ рд╕рднреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬреЗрдВ
рд╡рд┐рдзрд┐ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, CMxQL рдлрд╝рдВрдХреНрд╢рди
GetParameters () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ :
CxList runSSSQParams = All.GetParameters(runSuperSecureSQLQuery); result = runSSSQParams;
рдкрд░рд┐рдгрд╛рдо:

SQLi: рдЪрд░рдг 5. рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдЦреЛрдЬреЗрдВ
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рд╣рдореЗрдВ рдореВрд▓ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдирд╛рдо рдорд┐рд▓рддреЗ рд╣реИрдВ, рдЬрд┐рдирдХреЗ рдЕрдВрджрд░
runSuperSecureSQLQuery рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдХреЙрд▓
рд╣реЛрддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рд╣рдореЗрдВ рдЙрдирдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдорд┐рд▓рддреЗ рд╣реИрдВред рдореВрд▓ рдЯреЛрдХрди рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, CMxQL рдлрд╝рдВрдХреНрд╢рди
GetAncOfType () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ :
CxList entryPoints = runSuperSecureSQLQuery.GetAncOfType(typeof(MethodDecl)); result = entryPoints;
рдЗрд╕ рдХреНрд╡реЗрд░реА рдореЗрдВ, runSuperSecureSQLQuery рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП, MethodDecl рдХреЗ рд╕рднреА рдореВрд▓ рдЯреЛрдХрди рд▓реМрдЯрд╛рдПрдБ - рдпрд╣ рдХреЙрд▓ рд╕реНрдЯреИрдХ рдореЗрдВ рдкрд┐рдЫрд▓реА рд╡рд┐рдзрд┐ рд╣реИ:

рд╡рд┐рдзрд┐ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо
GetParameters () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
CxList entryPointsParameters = All.GetParameters(entryPoints).FindByType("String");
рдХреНрд╡реЗрд░реА
рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдмрд╕реЗрдЯ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЬрд╛рд╡рд╛ рдкреНрд░рдХрд╛рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде
рд▓реМрдЯрд╛рдПрдЧреА :

рдПрд╕рдХреНрдпреВрдЖрдИ: рдЪрд░рдг 6. рдкреНрд░рд╡реЗрд╢ рдкрд░ рдЕрдВрдХ PRSS рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдкреНрд░рдорд╛рдгрдкрддреНрд░, рдЬрдмрдХрд┐ рдХреЗрд╡рд▓ рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЬрд╣рд╛рдВ рдХреЛрдИ рд╕реИрдирд┐рдЯрд╛рдЗрдЬреЗрд╢рди рдЗрдирдкреБрдЯ рдЗрдирдкреБрдЯ рдирд╣реАрдВ рд╣реИ
рдЗрд╕ рдЪрд░рдг рдореЗрдВ, рд╣рдо рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдлреНрд▓реЛ рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
- InfluencedBy ()
- InfluencedByAndNotSanitized ()
- рдЗрдиреНрдлреНрд▓реБрдПрдВрд╕рд┐рдВрдЧрдСрди ()
- InfluencingOnAndNotSanitized ()
- NotInfluencedBy ()
- NotInfluencingOn ()
RunSSSQParams рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░
рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдкреИрддреГрдХ рд╡рд┐рдзрд┐ рдХреЗ
рдорд╛рдирджрдВрдб рдФрд░ рд╕реНрд╡рдЪреНрдЫрддрд╛ рдЯреЛрдХрди рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ:
CxList dataInflOnTable = runSSSQParams.InfluencedByAndNotSanitized(entryPointsParameters, sanitization);
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐
* AndNotSanitized рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЕрдВрджрд░ рдХреБрдЫ рдЬрд╛рджреВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЕрдзрд┐рдХ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдзрд┐ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рд╕реИрдирд┐рдЯрд╛рдЗрдЬреНрдб рд╕реЗрдЯ рдХреЛ рдШрдЯрд╛ рджреЗрддреА рд╣реИред рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ:
CxList dataInflOnTable = runSSSQParams.InfluencedBy(entryPointsParameters) - sanitization;
рдпрд╣ рдПрдХ рд╣реА рдмрд╛рдд рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╢рд╛рдпрдж рдореБрдЭреЗ рдЕрднреА рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ рдЬрдм рдорддрднреЗрдж рд╣реИрдВред
рдХреНрд╡реЗрд░реА рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣рдореЗрдВ рдПрдХ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдкреНрд░рд╡рд╛рд╣ рджреЗрддрд╛ рд╣реИ:

рд╕рдВрднрд╛рд╡рд┐рдд рдПрд╕рдХреНрдпреВрдПрд▓ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдлреНрд▓реЛ рдорд┐рд▓рд╛ред рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, Checkmarx рдиреЗ 3 рдлреНрд▓реЛ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ред рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рдкреНрд░рд╡рд╛рд╣ рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдПрдХ рд╡рд┐рдзрд┐ рдореЗрдВ рд╢реБрд░реВ рдФрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдЕрдЧрд▓рд╛ рдлрд╝реНрд▓реЛ рд╕рддреНрд░ рд╡рд░реНрдЧ рдореЗрдВ рдкрд╣рд▓реЗ рд╣реА рдирд┐рдХрд▓ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрд░реЛрдд / рдЧрдВрддрд╡реНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдФрд░ рдЕрдВрддрд┐рдо рдПрдХ рд╕рддреНрд░ рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИред
рд╕рддреНрд░ рдХреЗ рдЕрдВрджрд░ рдкреНрд░рд╡рд╛рд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

рдПрдХ рдкреНрд░рд╡рд╛рд╣ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
ReduceFlow рд╡рд┐рдзрд┐
(CxList.ReduceFlowType flowType) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рдЬрд╣рд╛рдБ flowType рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
- CxList.ReduceFlowType.ReduceBigFlow - рд╕рдмрд╕реЗ рдХрдо рдкреНрд░рд╡рд╛рд╣ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ
- CxList.ReduceFlowType.ReduceSmallFlow - рд╕рдмрд╕реЗ рд▓рдВрдмреЗ рдкреНрд░рд╡рд╛рд╣ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ
SQLi: SQL рдЗрдВрдЬреЗрдХреНрд╢рди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдХреНрд╡реЗрд░реА
рдЙрджрд╛рд╣рд░рдг 2: рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░рддреНрдпрдХреНрд╖ рд╡рд╕реНрддреБ рд╕рдВрджрд░реНрдн рдЦреЛрдЬрдирд╛
рдЗрд╕ рдЕрдиреБрд░реЛрдз рдореЗрдВ, рд╣рдо рдЙрди рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВрдЧреЗ, рдЬрд╣рд╛рдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдорд╛рд▓рд┐рдХ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рдмрд┐рдирд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП HTTP рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд▓рд┐рдЧреЗрд╕реА рд╣реИ), рдФрд░ рд╕рддреНрдпрд╛рдкрди рд╕реНрд╡рдпрдВ рд╡рд┐рднрд┐рдиреНрди рдЪрд░рдгреЛрдВ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: рдХрд╣реАрдВ рди рдХрд╣реАрдВ HTTP рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдПрдкреАрдЖрдИ рдмрд┐рдВрджреБ рдкрд░, рдХрд╣реАрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдЕрдиреБрд░реЛрдз рд╕реЗ рдкрд╣рд▓реЗ, рдФрд░ рдХрднреА-рдХрднреАред рдордзреНрдпрд╡рд░реНрддреА рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВред
рдЦреЛрдЬ рдпреЛрдЬрдирд╛
- рдЕрдкрд╡рд╛рджреЛрдВ ( рдмрд╣рд┐рд╖реНрдХрд░рдг ) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ;
- рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЬрд╛рдБрдЪ ( idorSanitizer ) рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдкрд╣рдЪрд╛рдиреЗрдВ;
- рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдЦреЛрдЬреЗрдВ - HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдкреНрд░рд╛рдердорд┐рдХ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди ( webRemoteMethods );
- рдХреЗрд╡рд▓ HTTP рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрд▓рдмреЙрдХреНрд╕ ( рдореЗрд▓рдмреЙрдХреНрд╕рдбреАрдирд┐рдЯ ) рдХреЗ рдирд┐рд╖реНрдХрд░реНрд╖рдг рд╕реНрдерд╛рди рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдЯреЛрдХрди рджреНрд╡рд╛рд░рд╛;
- WebRemoteMethods рд╕реЗ рд▓реЗрдХрд░ рдорд┐рдбрд┐рд▓рд╡реЗрдпрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдЗрди рдХреЙрд▓реНрд╕ ( рдорд┐рдбрд┐рд▓рд╡реЗрдпрд░рдореИрдереЛрдбреНрд╕ ) рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рддрдХ рд╕рднреА рдХреЙрд▓ рдЦреЛрдЬреЗрдВ;
- рдорд┐рдбрд▓рд╡реЗрдпрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬреЗрдВ рдЬреЛ рдореЗрд▓рдмреЙрдХреНрд╕рд┐рдб ( apiPotentialIDOR ) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИрдВ;
- рдЙрди рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ, рдЬрд╣рд╛рдВ рдорд┐рдбрд▓рд╡реЗрдпрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ( рдорд┐рдбрд▓рд╡реЗрдпрд░рдбреЗрдХрд▓ );
- рд╕рднреА apiPotentialIDOR рд╕реЗ рдЧреБрдЬрд░реЗрдВ рдФрд░ рдХреЗрд╡рд▓ рдЙрди рдорд┐рдбрд▓рд╡реЗрдпрд░рдбреЗрдХ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдореЗрд▓рдмреЙрдХреНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕реНрд╡рд╛рдореА рдХрд╛ рдХреЛрдИ рд╕рддреНрдпрд╛рдкрди рдирд╣реАрдВ рд╣реИред
IDOR: рдЪрд░рдг 1. рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдкрд╣рдЪрд╛рдиреЗрдВ
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рднреА рдЯреЛрдХрди рдХреЛ рдмрд╛рд╣рд░ рдХрд░реЗрдВ:
CxList exclusionList = All.FindByFileName("*WebMethodContext.java"); result = exclusionList;
WebMethodContext.java рдореЗрдВ
getMailboxId рдФрд░
getUserId рдЬреИрд╕реЗ рддрд░реАрдХреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕реНрдЯреНрд░рд┐рдВрдЧ "рдореЗрд▓рдмреЙрдХреНрд╕рд┐рдб" рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдЪреВрдВрдХрд┐ рдЯреЛрдХрди рдХрд╛ рдирд╛рдо рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рдПрдЧрд╛, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдореЗрдВ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдЧрд▓рдд рдирд┐рд╖реНрдХрд░реНрд╖ рдЬрд╛рд░реА рдХрд░реЗрдЧреАред
IDOR: рдЪрд░рдг 2. рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЬрд╛рдБрдЪ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдБ
рдкрд░реАрдХреНрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ,
рдорд╛рдиреНрдпрд▓реЗрдЯрдмреЙрдХреНрд╕ () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдзрд┐рдд рд╡рд╕реНрддреБ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╣реИ:
CxList idorSanitizer = All.FindByName("*validateMailbox*"); result = idorSanitizer;
рдкрд░рд┐рдгрд╛рдо:

IDOR: рдЪрд░рдг 3. рдХрд╕реНрдЯрдо HTTP рдПрдкреАрдЖрдИ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдЦреЛрдЬреЗрдВ
HTTP рдЕрдиреБрд░реЛрдз рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдПрдиреЛрдЯреЗрд╢рди рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдвреВрдВрдврдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ "WebRemote" рд╣реИ; CMxQL рдлрд╝рдВрдХреНрд╢рди
FindByCustomAttribute () рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдиреЛрдЯреЗрд╢рди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
FindByCustomAttribute () рдХреЗ рд▓рд┐рдП , рдореВрд▓ рдЯреЛрдХрди
GetAncOfType () рдХрд╛ рдЦреЛрдЬ рдлрд╝рдВрдХреНрд╢рди рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рддрд╣рдд рд╡рд┐рдзрд┐ рд▓реМрдЯрд╛рдПрдЧрд╛:
CxList webRemoteMethods = All.FindByCustomAttribute("WebRemote") .GetAncOfType(typeof(MethodDecl)); result = webRemoteMethods;
рд░рд┐рдЬрд▓реНрдЯ рдХрд╛ рдЕрдиреБрд░реЛрдз:

IDOR: рдЪрд░рдг 4. рдХреЗрд╡рд▓ рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯ рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдореЗрд▓рдмреЙрдХреНрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП HTTP рдирд┐рд╖реНрдХрд░реНрд╖рдг рд╕реНрдерд╛рди рдЦреЛрдЬреЗрдВ
HTTP рдореЗрд▓рдмреЙрдХреНрд╕рд┐рдб рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЯреЛрдХрди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП:
CxList getMailboxId = All.FindByName("\"mailboxId\"") + All.FindByName("\"mid\"") + All.FindByName("\"boxid\""); result = getMailboxId;
рд╣рдордиреЗ 3 рд╕реЗрдЯреЛрдВ рдХреЛ 3 рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛, рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рдВрд╡рджрдВрддреА рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ HTTP рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдирд╛рдо рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдХреНрд╡реЗрд░реА рдЙрди рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдкрд░
рдорд┐рд▓реЗрдЧреА рдЬрд╣рд╛рдВ
рдореЗрд▓рдмреЙрдХреНрд╕ / рдордзреНрдп / рдмреЙрдХреНрд╕рд┐рдб рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ (рджреЛрд╣рд░реЗ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдореЗрдВ) рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдХреНрд╡реЗрд░реА рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЦреЛрдЬ, tk рдХреЛ рд▓реМрдЯрд╛ рджреЗрдЧреАред рдРрд╕реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рди рдХреЗрд╡рд▓ рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ рдЬрд╣рд╛рдВ HTTP рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рдХрд╛рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдЗрд╕ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рднрд╛рд░реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЭреВрдареЗ рдорд┐рд▓ рдЬрд╛рдПрдВрдЧреЗред
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ (
webRemoteMethods ) рдХреЗ рдЯреЛрдХрди рдХреА рдЦреЛрдЬ рдХрд░реЗрдВрдЧреЗред рд╕рднреА рдмрдЪреНрдЪреЗ рдХреЗ рдЯреЛрдХрди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, CMBQL рдлрд╝рдВрдХреНрд╢рди
GetByAncs () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ :
result = All.GetByAncs(webRemoteMethods);
рдЕрдиреБрд░реЛрдз
WebRemote рдХреЗ рд░реВрдк рдореЗрдВ рдПрдиреЛрдЯреЗрдЯ рдХрд┐рдП рдЧрдП рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рдЯреЛрдХрди
рд▓реМрдЯрд╛рдПрдЧрд╛ ред рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдо рдЙрди рддрд░реАрдХреЛрдВ рдХреЗ рдЯреЛрдХрди рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдорд╛рд▓рд┐рдХ рдХреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдмрдЪреНрдЪреЗ рдХреЗ рдЯреЛрдХрди рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓реА рдХреНрд╡реЗрд░реА рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐
рд╡реЗрдмрд░реЛрдЯ рддрд░реАрдХреЛрдВ рдХреЗ рдХреЗрд╡рд▓ рдмрдЪреНрдЪреЗ рдХреЗ рдЯреЛрдХрди рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдорд╛рд▓рд┐рдХ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реБрд░рдХреНрд╖рд╛ рдЬрд╛рдВрдЪ рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╢рд░реНрдд рдХреЗ рд╕рд╛рде рдПрдХ рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
рдЕрдм рд╣рдо HTTP
рдореЗрд▓рдмреЙрдХреНрд╕ рдореЗрд▓рдмреЙрдХреНрд╕ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
CxList getMailboxHTTPParams = entry_point_tokens.FindByName("\"mailboxid\"") + entry_point_tokens.FindByName("\"mid\"") + entry_point_tokens.FindByName("\"boxid\""); result = getMailboxHTTPParams;
рд▓реЗрдХрд┐рди рд╣рдо рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ HTTP рдкреИрд░рд╛рдореАрдЯрд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрди рдЪрд░ рдореЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдВрддрддрдГ HTTP рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред рдЪреВрдБрдХрд┐ рдЪрд░ рдХреЗ рдЯреЛрдХрди рджреНрд╡рд╛рд░рд╛ рдлреНрд▓реЛ рдХреА рдЦреЛрдЬ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИред
CMxQL рдлрд╝рдВрдХреНрд╢рди
FindByInitialization () рджрд┐рдП рдЧрдП рдЯреЛрдХрди рдХреЗ рд▓рд┐рдП рдЪрд░ рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рд╕реНрдерд╛рдиреЛрдВ рдХреЛ
рдвреВрдВрдвреЗрдЧрд╛ :
CxList mailboxidInit = entry_point_tokens.FindByInitialization(getMailboxHTTPParams); result = mailboxidInit;
рдкрд░рд┐рдгрд╛рдо:

IDOR: рд╕реНрдЯреЗрдк 5. webRemoteMethods рд╕реЗ рд▓реЗрдХрд░ рдорд┐рдбрд▓рд╡реЗрдпрд░ рдореЗрдердб рдФрд░ рдЗрди рдХреЙрд▓реНрд╕ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рддрдХ рд╕рднреА рдХреЙрд▓реНрд╕ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ
рдорд┐рдбрд▓рд╡реЗрдпрд░ рджреНрд╡рд╛рд░рд╛, рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡рд╣ рдХреЛрдб рдЬреЛ HTTP API рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рддрд░реАрдХреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдЧрд╣рд░рд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБрдУрдВ рд╕реЗ рдЕрдзрд┐рдХ рдЧрд╣рд░рд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдКрдкрд░ рджрд┐рдП рдЧрдП рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреЗ рд▓рд┐рдП, рдпреЗ
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд░реНрдЧ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВ,
user.getSettings () рдФрд░
user.getSecureSettings () рдХреЗ рд▓рд┐рдП рдХреЙрд▓:
CxList middlewareMethods = All.FindByShortName("user").GetRightmostMember(); CxList middlewareMethodsParams = entry_point_tokens.GetParameters(middlewareMethods); result = middlewareMethodsParams;
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдирд╛рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рд╕рднреА рдЯреЛрдХрди рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░
GetRightmostMember () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
рд╣рдо рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдЯреЛрдХрди рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ
GetRightmostMember () рд╕рдмрд╕реЗ рд╕рд╣реА рд▓реМрдЯрд╛рдПрдЧрд╛ред рдлрд┐рд░ рд╣рдо
рдЧреЗрдЯрдкрд╛рдореЗрдЯрд░реНрд╕ () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рдпрд╛ рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
рдкрд░рд┐рдгрд╛рдо:

IDOR: рд╕реНрдЯреЗрдк 6. рдорд┐рдбрд▓рд╡реЗрдпрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬреЗрдВ рдЬреЛ рдореЗрд▓рдмреЙрдХреНрд╕рд┐рдб рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИрдВ
рдкреНрд░рд╡рд╛рд╣ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
* InfluencedBy * рдФрд░
* InfluncingOn * рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЙрдирдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдирд╛рдо рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
All.InfluencedBy(getMailboxHTTPParams)
рд╕реЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛ рд╕рднреА рдФрд░ рд╕рднреА рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬреЛ
getMailboxHTTPParams рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред
рдЙрд╕реА рдХреЛ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
getMailboxHTTPParams.InfluencingOn(All)
рдореЗрд▓рдмреЙрдХреНрд╕рдирд┐рдбрд┐рдЯ рдкрд░ рдирд┐рд░реНрднрд░ рдЯреЛрдХрди рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
CxList apiPotentialIDOR = entry_point_tokens.InfluencedByAndNotSanitized(mailboxidInit, idorSanitizer); result = apiPotentialIDOR;
рдкрд░рд┐рдгрд╛рдо:

IDOR: рдЪрд░рдг 7. рдорд┐рдбрд┐рд▓рд╡реЗрдпрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ
рдЖрдЗрдП рд╣рдо рдЙрди рд╕рднреА рдордзреНрдпрд╡рд░реНрддреА рддрд░реАрдХреЛрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдЦреЛрдЬреЗрдВ рдЬреЛ рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрд░реЛрдз рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрдирдХреА рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдкрддреНрддрд┐ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрд╕реЗ рд╕рднреА рддрд░реАрдХреЛрдВ рдореЗрдВ
рдЕрдиреБрд░реЛрдз () рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддрд╛ рд╣реИ, рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг CMx рдкреНрд░рдХрд╛рд░
ObjectCreateExpr :
CxList requests = (All - exclusionList).FindByType(typeof(ObjectCreateExpr)).FindByName("*Request*"); CxList middlewareDecl = requests.GetAncOfType(typeof(MethodDecl)); result = middlewareDecl;
(рд╕рднреА - рдмрд╣рд┐рд╖реНрдХрд░рдг) - рдЖрдк рд╕реЗрдЯ рдХреЗ рдЗрд╕ рдШрдЯрд╛рд╡ рдХреЛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рд╡рд╛рдВрдЫрд┐рдд CMxQL рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдиреБрд░реЛрдз рдореЗрдВ рдЕрдм рд╕рднреА рдЯреЛрдХрди рд╣реЛрддреЗ рд╣реИрдВ рдирд╛рдо рдХреЗ рд╕рд╛рде
рдЕрдиреБрд░реЛрдз рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЗрд╕реА рдкреНрд░рдХрд╛рд░ред
рдЕрдЧрд▓рд╛, рдкрд░рд┐рдЪрд┐рдд
GetAncOfType () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
, рд╣рдо
MethodDecl рдХреЗ рдореВрд▓ рдЯреЛрдХрди рдХреЛ
рдЦреЛрдЬрддреЗ рд╣реИрдВ ред
рдкрд░рд┐рдгрд╛рдо:

IDOR: рдЪрд░рдг 8. рд╕рднреА apiPotentialIDOR рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдХреЗрд╡рд▓ рдЙрди рдорд┐рдбрд▓рд╡реЗрдпрд░рдбреЗрдХ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдореЗрд▓рдмреЙрдХреНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕реНрд╡рд╛рдореА рдХрд╛ рдХреЛрдИ рд╕рддреНрдпрд╛рдкрди рдирд╣реАрдВ рд╣реИ
рдЕрдиреБрд░реЛрдз рдХреЗ рдЕрдВрддрд┐рдо рднрд╛рдЧ рдореЗрдВ, рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреМрди рд╕реЗ рдорд┐рдбрд▓рд╡реЗрдпрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕реАрдзреЗ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рд╡рд┐рдзрд┐рдпреЛрдВ рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдордд рдЬрд╛рдВрдЪреЗрдВ рдХрд┐
рдореЗрд▓рдмреЙрдХреНрд╕ рдХрд┐рд╕рдХрд╛ рд╣реИред рдлрд┐рд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдлреНрд▓реЛ рдХреЛ рдорд┐рд▓рд╛рдПрдВред
рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬреЛ рд╣рдордиреЗ рдЕрднреА рддрдХ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХреА рд╣реИрдВ:
GetCxListByPath () - рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд╝реНрд▓реЛ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрджрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ CMx рдХреЛрдб рдПрд▓реАрдореЗрдВрдЯ рдореЗрдВ рдлрд╝реНрд▓реЛ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░реЗрдЧрд╛ (рдкрд╣рд▓реЗ рдлрд╝реНрд▓реЛ рдиреЛрдб рдореЗрдВ)
рд╕рдВрдШрдЯрдХ * () - рдПрдХ рдореЗрдВ рдХрдИ рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрдИ рдХрд╛рд░реНрдп
FindByParameters () - рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдЯреЛрдХрди рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╡рд┐рдзрд┐ рдЦреЛрдЬреЗрдВ
GetName () - рдЯреЛрдХрди рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рдПрдЧрд╛, рдЕрдЧрд░ CxList рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рддрддреНрд╡ рд╣реИрдВ, рддреЛ рдпрд╣ рдкрд╣рд▓реЗ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдПрдХ рд╕реЗрдЯ рдХреЗ рддрддреНрд╡реЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╣реЛрддреА рд╣реИред
рдЕрдиреБрд░реЛрдз рдХрд╛ рдЕрдВрддрд┐рдо рднрд╛рдЧ:
рдкрд░рд┐рдгрд╛рдо:
CocatenatePath , . Code Element Flow
IDOR: IDOR
рдирд┐рд╖реНрдХрд░реНрд╖
Checkmarx , . , , , .. Flow ( ). , , ┬л┬╗ .
false positive, :
- , ( ).
- , ( ). , ┬лPrivacy Violation┬╗, , , Web UI. , .. UI . TLS XSS .
- - , (, ). , XXE , , - , .
- false positive, , CMxQL FindBy/GetBy. , ( SQL).
- false positives, , , , , CMx, . , LDAP , . c LDAP- , , .
how-to ┬лhello world┬╗ , Checkmarx.