แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ Checkmarx-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ’แƒ˜แƒŸแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”

แƒฐแƒ”แƒ˜ แƒฐแƒแƒ‘แƒ !

แƒฉแƒ•แƒ”แƒœแƒก แƒกแƒแƒฅแƒ›แƒ˜แƒแƒœแƒแƒ‘แƒแƒจแƒ˜, แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ”แƒฎแƒ”แƒ‘แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒก แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒ”แƒ‘แƒก (SAST). แƒงแƒฃแƒ—แƒ˜แƒ“แƒแƒœ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒจแƒฃแƒแƒšแƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ”แƒœ. แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ–แƒ” แƒ“แƒ แƒ›แƒแƒกแƒจแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒขแƒ”แƒฅแƒœแƒแƒšแƒแƒ’แƒ˜แƒ”แƒ‘แƒ–แƒ”, แƒแƒกแƒ”แƒ•แƒ” แƒ แƒแƒ›แƒ“แƒ”แƒœแƒแƒ“ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒแƒ แƒ˜แƒก แƒ“แƒแƒคแƒแƒ แƒฃแƒšแƒ˜ แƒ”แƒก แƒขแƒ”แƒฅแƒœแƒแƒšแƒแƒ’แƒ˜แƒ”แƒ‘แƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒ—. แƒฉแƒ”แƒ›แƒ˜ แƒแƒ–แƒ แƒ˜แƒ—, แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ™แƒ แƒ˜แƒขแƒ”แƒ แƒ˜แƒฃแƒ›แƒ˜ SAST แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒแƒ แƒฉแƒ”แƒ•แƒ˜แƒกแƒแƒก แƒแƒ แƒ˜แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒ–แƒ” แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒแƒ แƒ’แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ, แƒ™แƒ”แƒ แƒซแƒแƒ“, แƒฉแƒแƒฌแƒ”แƒ แƒแƒ— แƒ“แƒ แƒจแƒ”แƒชแƒ•แƒแƒšแƒแƒ— แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒแƒœ, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒ— แƒฃแƒคแƒ แƒ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒฃแƒฌแƒแƒ“แƒ”แƒ‘แƒ”แƒœ, Custom Queries.

แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ Checkmarx-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ’แƒ˜แƒŸแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”

แƒฉแƒ•แƒ”แƒœ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— Checkmarx - แƒซแƒแƒšแƒ˜แƒแƒœ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒ“แƒ แƒ›แƒซแƒšแƒแƒ•แƒ แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒขแƒแƒ แƒก. แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒ›แƒ” แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘ แƒ›แƒแƒกแƒ–แƒ” แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒก แƒฉแƒ”แƒ›แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒแƒ–แƒ”.

แƒกแƒแƒ แƒฉแƒ”แƒ•แƒ˜

Entry

แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒ˜แƒœแƒ“แƒ แƒ’แƒ˜แƒ แƒฉแƒ˜แƒแƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒ“แƒแƒœ แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒ แƒฃแƒกแƒฃแƒš แƒ”แƒœแƒแƒ–แƒ” Checkmarx-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒ˜แƒ’แƒ˜ แƒ’แƒแƒ›แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ“แƒ Habrรฉ-แƒ–แƒ” 2019 แƒฌแƒšแƒ˜แƒก แƒ‘แƒแƒšแƒแƒก แƒกแƒแƒ—แƒแƒฃแƒ แƒ˜แƒ—: "แƒ’แƒแƒ›แƒแƒ แƒฏแƒแƒ‘แƒ, Checkmarx!" แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— Checkmarx SAST แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒ“แƒ แƒ˜แƒžแƒแƒ•แƒแƒ— แƒ›แƒแƒ’แƒแƒ แƒ˜ แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒ.

แƒ˜แƒ’แƒ˜ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒ’แƒแƒœแƒ˜แƒฎแƒ˜แƒšแƒแƒ•แƒก, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ“แƒแƒฌแƒ”แƒ แƒแƒ— แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ CxQL-แƒจแƒ˜ (Checkmarx Query Language) แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒขแƒ”แƒกแƒขแƒ˜แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“ แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒ”แƒ‘แƒก.

แƒแƒ  แƒ’แƒแƒ•แƒ˜แƒ›แƒ”แƒแƒ แƒ”แƒ‘, แƒ แƒแƒช แƒ›แƒแƒกแƒจแƒ˜แƒ แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜, แƒ—แƒฃแƒ›แƒชแƒ แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ™แƒ•แƒ”แƒ—แƒ แƒ›แƒแƒ˜แƒœแƒช แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ. แƒฉแƒ”แƒ›แƒก แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒจแƒ”แƒ•แƒ”แƒชแƒ“แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ•แƒแƒ“แƒ’แƒ˜แƒœแƒ แƒ”แƒ แƒ—แƒ’แƒ•แƒแƒ แƒ˜ โ€žแƒ แƒ”แƒชแƒ”แƒžแƒขแƒ”แƒ‘แƒ˜แƒก แƒ™แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜โ€œ, แƒ˜แƒ› แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒญแƒ แƒ˜แƒก แƒฉแƒแƒ›แƒแƒœแƒแƒ—แƒ•แƒแƒšแƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒจแƒ”แƒ›แƒฎแƒ•แƒ“แƒ Checkmarx-แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก. แƒ›แƒ” แƒ›แƒแƒ›แƒ˜แƒฌแƒ˜แƒ แƒญแƒ™แƒฃแƒ˜แƒก แƒจแƒ”แƒ™แƒแƒ•แƒ”แƒ‘แƒ แƒแƒ› แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ. แƒฎแƒแƒœแƒ“แƒแƒฎแƒแƒœ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒจแƒ˜ แƒแƒ  แƒ˜แƒงแƒ แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒ“แƒ แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒซแƒœแƒ”แƒšแƒ˜ แƒ˜แƒงแƒ แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ’แƒ”แƒ‘แƒ, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ”แƒ™แƒ”แƒ—แƒ”แƒ‘แƒ˜แƒœแƒ แƒ˜แƒก, แƒ แƒแƒช แƒ˜แƒงแƒ แƒกแƒแƒญแƒ˜แƒ แƒ. แƒ•แƒ˜แƒ›แƒ”แƒ“แƒแƒ•แƒœแƒ”แƒ‘, แƒ แƒแƒ› แƒฉแƒ”แƒ›แƒ˜ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ แƒ“แƒ แƒฃแƒซแƒ˜แƒšแƒ แƒฆแƒแƒ›แƒ”แƒ”แƒ‘แƒ˜ แƒแƒ  แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒฃแƒจแƒ”แƒ“แƒ”แƒ’แƒ แƒ“แƒ แƒ”แƒก "แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒฃแƒ แƒ˜ แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒ แƒ”แƒชแƒ”แƒžแƒขแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒšแƒ”แƒฅแƒชแƒ˜แƒ" แƒ“แƒแƒ–แƒแƒ’แƒแƒ•แƒก แƒ—แƒฅแƒ•แƒ”แƒœ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒแƒแƒ—แƒก แƒแƒœ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒœแƒ”แƒ แƒ•แƒฃแƒš แƒฃแƒฏแƒ แƒ”แƒ“แƒก. แƒ›แƒแƒจ แƒแƒกแƒ”, แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒแƒ—!

แƒ–แƒแƒ’แƒแƒ“แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘

แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ แƒ˜แƒ’แƒจแƒ˜, แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“ แƒ™แƒแƒœแƒชแƒ”แƒคแƒชแƒ˜แƒแƒก แƒ“แƒ แƒฌแƒ”แƒกแƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒก, แƒ แƒแƒ—แƒ แƒฃแƒ™แƒ”แƒ— แƒ’แƒแƒ•แƒ˜แƒ’แƒแƒ— แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’. แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ แƒแƒ› แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ แƒแƒ แƒแƒคแƒ”แƒ แƒก แƒแƒ›แƒ‘แƒแƒ‘แƒก แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒแƒœ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ’แƒแƒ•แƒ แƒชแƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒแƒจแƒ˜, แƒ แƒแƒช แƒแƒ แƒช แƒ—แƒฃ แƒ˜แƒกแƒ” แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ.

  1. แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒกแƒ™แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก, แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒแƒ แƒฉแƒ”แƒฃแƒšแƒ˜ แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— (แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ˜ แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜). แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒฃแƒ–แƒฆแƒฃแƒ“แƒแƒ•แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ, แƒ“แƒ แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ แƒแƒ’แƒแƒ  แƒแƒแƒฌแƒงแƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜, แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒ–แƒ”. แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒแƒฏแƒ’แƒฃแƒคแƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ”แƒœแƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— แƒแƒœ แƒแƒ˜แƒ แƒฉแƒ˜แƒแƒ— แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ˜ แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒ’แƒแƒ•แƒšแƒ”แƒœแƒแƒก แƒแƒฎแƒ“แƒ”แƒœแƒก แƒกแƒ™แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒฉแƒฅแƒแƒ แƒ”แƒ–แƒ” แƒ“แƒ แƒกแƒ˜แƒ–แƒฃแƒกแƒขแƒ”แƒ–แƒ”.

    แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ Checkmarx-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ’แƒ˜แƒŸแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”Preset-แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ Checkmarx-แƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒจแƒ˜

  2. แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ  แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒจแƒ˜, แƒกแƒแƒฎแƒ”แƒšแƒฌแƒแƒ“แƒ”แƒ‘แƒ˜แƒ— CxAuditor. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ“แƒ”แƒกแƒ™แƒขแƒแƒžแƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก Checkmarx-แƒ–แƒ”. แƒแƒ› แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒก แƒแƒฅแƒ•แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒแƒ แƒ˜ แƒ แƒ”แƒŸแƒ˜แƒ›แƒ˜: แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒฃแƒ™แƒ•แƒ” แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ™แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜.

    แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ Checkmarx-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ’แƒ˜แƒŸแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”CxAudit แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜

  3. Checkmarx-แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒ“แƒแƒงแƒแƒคแƒ˜แƒšแƒ˜แƒ แƒ”แƒœแƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒแƒœแƒฃ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒ”แƒœแƒแƒก แƒแƒฅแƒ•แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜. แƒแƒกแƒ”แƒ•แƒ” แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ–แƒแƒ’แƒแƒ“แƒ˜ แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ”แƒœแƒ˜แƒก แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“, แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ”แƒ’แƒ แƒ”แƒ— แƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜. แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒฌแƒ˜แƒšแƒแƒ“, แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒซแƒ˜แƒ”แƒ‘แƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒกแƒฎแƒ•แƒ แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก.

    แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ Checkmarx-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ’แƒ˜แƒŸแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒงแƒแƒคแƒ แƒ”แƒœแƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—

  4. แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒแƒ แƒ˜แƒก โ€žแƒจแƒ”แƒกแƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜โ€œ แƒ“แƒ โ€žแƒแƒ แƒแƒจแƒ”แƒกแƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜โ€œ (แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜). แƒแƒ แƒช แƒ˜แƒกแƒ” แƒกแƒฌแƒแƒ แƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ, แƒฉแƒ”แƒ›แƒ˜ แƒแƒ–แƒ แƒ˜แƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒแƒกแƒ”แƒ. แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› "แƒจแƒ”แƒกแƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜" แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒกแƒ™แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒจแƒ˜ UI-แƒจแƒ˜, แƒฎแƒแƒšแƒ "แƒแƒ แƒแƒจแƒ”แƒ›แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜" แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒแƒ—แƒ˜ แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒกแƒฎแƒ•แƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒจแƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“ (แƒแƒ แƒกแƒ”แƒ‘แƒ˜แƒ—แƒแƒ“, แƒ›แƒฎแƒแƒšแƒแƒ“ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ).

    แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ Checkmarx-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ’แƒ˜แƒŸแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”แƒฌแƒ”แƒกแƒ˜แƒก แƒขแƒ˜แƒžแƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒกแƒแƒก

  5. แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒแƒฎแƒแƒšแƒ˜ แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒแƒœ แƒจแƒ”แƒแƒ•แƒกแƒแƒ—/แƒ’แƒแƒ“แƒแƒฌแƒ”แƒ แƒแƒ— แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜. แƒฌแƒ”แƒกแƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒฌแƒ”แƒ แƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ˜แƒžแƒแƒ•แƒแƒ— แƒ˜แƒก แƒฎแƒ”แƒจแƒ˜, แƒ“แƒแƒแƒฌแƒ™แƒแƒžแƒฃแƒœแƒ”แƒ— แƒ›แƒแƒฃแƒกแƒ˜แƒก แƒ›แƒแƒ แƒฏแƒ•แƒ”แƒœแƒ แƒฆแƒ˜แƒšแƒแƒ™แƒ˜แƒ— แƒ“แƒ แƒฉแƒแƒ›แƒแƒกแƒแƒจแƒšแƒ”แƒšแƒ˜ แƒ›แƒ”แƒœแƒ˜แƒฃแƒ“แƒแƒœ แƒแƒ˜แƒ แƒฉแƒ˜แƒ”แƒ— โ€œOverrideโ€. แƒแƒฅ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ แƒ’แƒ•แƒแƒฎแƒกแƒแƒ•แƒ“แƒ”แƒก, แƒ แƒแƒ› แƒแƒฎแƒแƒšแƒ˜ แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœแƒ•แƒ” แƒแƒ  แƒจแƒ”แƒ“แƒ˜แƒก แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ“แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ˜. แƒ›แƒแƒ—แƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒงแƒ”แƒ‘แƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒแƒแƒฅแƒขแƒ˜แƒฃแƒ แƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒจแƒ˜ "Preset Manager" แƒ›แƒ”แƒœแƒ˜แƒฃแƒจแƒ˜. แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒ˜แƒœแƒแƒ แƒฉแƒฃแƒœแƒ”แƒ‘แƒก แƒ—แƒแƒ•แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒก, แƒแƒœแƒฃ แƒ—แƒฃ แƒฌแƒ”แƒกแƒ˜ แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ˜ แƒ˜แƒงแƒ, แƒ˜แƒก แƒแƒกแƒ” แƒ“แƒแƒ แƒฉแƒ”แƒ‘แƒ แƒ“แƒ แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก.

    แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ Checkmarx-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ’แƒ˜แƒŸแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”แƒแƒฎแƒแƒšแƒ˜ แƒฌแƒ”แƒกแƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ Preset Manager แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒจแƒ˜

  6. แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก แƒจแƒ”แƒœแƒ“แƒ”แƒ‘แƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก โ€žแƒฎแƒ”โ€œ, แƒ แƒแƒช แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒ. แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก, แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒฏแƒ”แƒ , แƒฎแƒแƒšแƒ แƒ•แƒ˜แƒœแƒช แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ›แƒแƒก. แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒฅแƒ”แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒแƒกแƒ” แƒ แƒแƒ›, แƒ—แƒฃ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฌแƒ”แƒกแƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ˜แƒ แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ, แƒ”แƒก แƒจแƒ”แƒแƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒก แƒกแƒ™แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก.

  7. แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ“แƒแƒœแƒ”แƒ–แƒ”:

  • แƒ›แƒ—แƒ”แƒšแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก - แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒกแƒ™แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

  • แƒ’แƒฃแƒœแƒ“แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ–แƒ” (Team) - แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒจแƒ”แƒ แƒฉแƒ”แƒฃแƒš แƒ’แƒฃแƒœแƒ“แƒจแƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒ™แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

  • แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ–แƒ” - แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒš แƒžแƒ แƒแƒ”แƒฅแƒขแƒจแƒ˜

    แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ Checkmarx-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ’แƒ˜แƒŸแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ, แƒ—แƒฃ แƒ แƒ แƒ“แƒแƒœแƒ”แƒ–แƒ” แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฌแƒ”แƒกแƒ˜

"แƒšแƒ”แƒฅแƒกแƒ˜แƒ™แƒแƒœแƒ˜" แƒ“แƒแƒ›แƒฌแƒงแƒ”แƒ‘แƒ—แƒแƒ—แƒ•แƒ˜แƒก

แƒ“แƒ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ แƒแƒ›แƒ˜แƒ—, แƒ แƒแƒ›แƒแƒช แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒ แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” แƒ’แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ— แƒฃแƒแƒ›แƒ แƒแƒ• แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒœแƒแƒ“ แƒ’แƒแƒแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒ‘แƒก แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒแƒก.

แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒ—

- ะฒั‹ั‡ะธั‚ะฐะฝะธะต ะพะดะฝะพะณะพ ะธะท ะดั€ัƒะณะพะณะพ (list2 - list1)
* ะฟะตั€ะตัะตั‡ะตะฝะธะต ัะฟะธัะบะพะฒ (list1 * list2)
+ ัะปะพะถะตะฝะธะต ัะฟะธัะบะพะฒ (list1 + list2)

& (ะปะพะณะธั‡ะตัะบะพะต ะ˜) - ะพะฑัŠะตะดะธะฝัะตั‚ ัะฟะธัะบะธ ะฟะพ ัะพะฒะฟะฐะดะตะฝะธัŽ (list1 & list2), ะฐะฝะฐะปะพะณะธั‡ะฝะพ ะฟะตั€ะตัะตั‡ะตะฝะธัŽ (list1 * list2)
| (ะปะพะณะธั‡ะตัะบะพะต ะ˜ะ›ะ˜) - ะพะฑัŠะตะดะธะฝัะตั‚ ัะฟะธัะบะธ ะฟะพ ัˆะธั€ะพะบะพะผัƒ ะฟะพะธัะบัƒ (list1 | list2)

ะกะพ ัะฟะธัะบะฐะผะธ ะฝะต ั€ะฐะฑะพั‚ะฐะตั‚:  ^  &&  ||  %  / 

แƒงแƒ•แƒ”แƒšแƒ แƒœแƒแƒžแƒแƒ•แƒœแƒ˜ แƒœแƒ˜แƒ•แƒ—แƒ˜

แƒ“แƒแƒกแƒ™แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒฃแƒš แƒ”แƒœแƒแƒจแƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— แƒแƒ‘แƒกแƒแƒšแƒฃแƒขแƒฃแƒ แƒแƒ“ แƒงแƒ•แƒ”แƒšแƒ แƒ”แƒšแƒ”แƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒกแƒ˜แƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช Checkmarx-แƒ›แƒ แƒแƒ›แƒแƒ˜แƒชแƒœแƒ (แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ”แƒ‘แƒ˜, แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜, แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒ˜, แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ.แƒจ.). แƒ”แƒก แƒแƒ แƒ˜แƒก แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ•แƒ แƒชแƒ”, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—แƒแƒช แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒฌแƒ•แƒ“แƒแƒ›แƒ All. แƒแƒœแƒฃ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒ›แƒฅแƒแƒœแƒ” แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜แƒก แƒซแƒ˜แƒ”แƒ‘แƒ searchMe, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒแƒซแƒ”แƒ‘แƒœแƒแƒ—, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ— แƒงแƒ•แƒ”แƒšแƒ แƒœแƒแƒžแƒแƒ•แƒœแƒ˜ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒจแƒ˜:

// ะขะฐะบะพะน ะทะฐะฟั€ะพั ะฒั‹ะดะฐัั‚ ะฒัะต ัะปะตะผะตะฝั‚ั‹
result = All;

// ะขะฐะบะพะน ะทะฐะฟั€ะพั ะฒั‹ะดะฐัั‚ ะฒัะต ัะปะตะผะตะฝั‚ั‹, ะฒ ะธะผะตะฝะธ ะบะพั‚ะพั€ั‹ั… ะฟั€ะธััƒั‚ัั‚ะฒัƒะตั‚ โ€œsearchMeโ€œ
result = All.FindByName("searchMe");

แƒ›แƒแƒ’แƒ แƒแƒ›, แƒ—แƒฃ แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒกแƒฎแƒ•แƒ แƒ”แƒœแƒแƒ–แƒ” แƒซแƒ˜แƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ แƒแƒ˜แƒ›แƒ” แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜แƒ— แƒแƒ  แƒ˜แƒงแƒ แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜ แƒกแƒ™แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒแƒจแƒ˜ (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, groovy Android แƒžแƒ แƒแƒ”แƒฅแƒขแƒจแƒ˜), แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒแƒคแƒแƒ แƒ—แƒแƒ•แƒแƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ” แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—:

result = AllMembers.All.FindByName("searchMe");

แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒœแƒแƒ™แƒแƒ“แƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

แƒ”แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ‘แƒ”แƒ•แƒ  แƒฌแƒ”แƒกแƒจแƒ˜ แƒ“แƒ แƒแƒฅ แƒแƒ แƒ˜แƒก แƒžแƒแƒขแƒแƒ แƒ แƒ›แƒแƒขแƒงแƒฃแƒ”แƒ‘แƒ˜แƒก แƒคแƒฃแƒ แƒชแƒ”แƒšแƒ˜, แƒ—แƒฃ แƒ แƒแƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก แƒ˜แƒกแƒ˜แƒœแƒ˜:

// ะšะฐะบะธะต ะดะฐะฝะฝั‹ะต second ะฒะปะธััŽั‚ ะฝะฐ first.
// ะ”ั€ัƒะณะธะผะธ ัะปะพะฒะฐะผะธ - ะขะž (second) ั‡ั‚ะพ ะฒะปะธัะตั‚ ะฝะฐ  ะœะ•ะะฏ (first).
result = first.DataInfluencedBy(second);

// ะšะฐะบะธะต ะดะฐะฝะฝั‹ะต first ะฒะปะธััŽั‚ ะฝะฐ second.
// ะ”ั€ัƒะณะธะผะธ ัะปะพะฒะฐะผะธ - ะฏ (first) ะฒะปะธััŽ ะฝะฐ ะขะž (second).
result = first.DataInfluencingOn(second);

แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก/แƒ’แƒ–แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ

แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒแƒช แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ (แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒœแƒแƒžแƒแƒ•แƒœแƒ˜แƒ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜, แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜ แƒ“แƒ แƒ.แƒจ.), แƒ›แƒแƒ’แƒ แƒแƒ› แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒจแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒœแƒแƒ—แƒฅแƒ•แƒแƒ›แƒ˜, แƒ แƒแƒ’แƒแƒ  แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒแƒ— แƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜. แƒแƒกแƒ” แƒ แƒแƒ›, แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒฎแƒ•แƒ˜แƒ“แƒ”แƒ— LinePragma แƒ—แƒ•แƒ˜แƒกแƒ”แƒ‘แƒแƒ–แƒ” แƒ“แƒ แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜ แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ“แƒ”แƒ‘แƒ แƒ›แƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ—:

// ะ”ะปั ะฟั€ะธะผะตั€ะฐ ะฝะฐะนะดะตะผ ะฒัะต ะผะตั‚ะพะดั‹
CxList methods = Find_Methods();

// ะ’ ะผะตั‚ะพะดะฐั… ะฝะฐะนะดะตะผ ะฟะพ ะธะผะตะฝะธ ะผะตั‚ะพะด scope
CxList scope = methods.FindByName("scope");

// ะขะฐะบะธะผ ะพะฑั€ะฐะทะพะผ ะผะพะถะพ ะฟะพะปัƒั‡ะธั‚ัŒ ะฟัƒั‚ัŒ ะบ ั„ะฐะนะปัƒ
string current_filename = scope.GetFirstGraph().LinePragma.FileName;

// ะ ะฒะพั‚ ั‚ะฐะบะธะผ - ัั‚ั€ะพะบัƒ, ะณะดะต ะฝะฐัˆะปะพััŒ ัั€ะฐะฑะฐั‚ั‹ะฒะฐะฝะธะต
int current_line = scope.GetFirstGraph().LinePragma.Line;

// ะญั‚ะธ ะฟะฐั€ะฐะผะตั‚ั€ั‹ ะผะพะถะฝะพ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ะฟะพ ั€ะฐะทะฝะพะผัƒ
// ะะฐะฟั€ะธะผะตั€ ะฟะพะปัƒั‡ะธั‚ัŒ ะฒัะต ะพะฑัŠะตะบั‚ั‹ ะฒ ั„ะฐะนะปะต
CxList inFile = All.FindByFileName(current_filename);

// ะ˜ะปะธ ะฝะฐะนั‚ะธ ั‡ั‚ะพ ะฟั€ะพะธัั…ะพะดะธั‚ ะฒ ะบะพะฝะบั€ะตั‚ะฝะพะน ัั‚ั€ะพะบะต
CxList inLine = inFile.FindByPosition(current_line);

แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒ แƒฆแƒ˜แƒ แƒก FileName แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ’แƒ–แƒแƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ GetFirstGraph.

แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜

CxQL-แƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ˜ result, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒฌแƒ”แƒ แƒ˜แƒšแƒแƒ‘แƒ˜แƒ—แƒ˜ แƒฌแƒ”แƒกแƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒก. แƒ˜แƒก แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒแƒกแƒจแƒ˜ แƒฉแƒแƒฌแƒ”แƒ แƒแƒ— แƒจแƒฃแƒแƒšแƒ”แƒ“แƒฃแƒ แƒ˜ แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜, แƒจแƒ”แƒชแƒ•แƒแƒšแƒแƒ— แƒ“แƒ แƒ“แƒแƒฎแƒ•แƒ”แƒฌแƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒแƒก. แƒ›แƒแƒ’แƒ แƒแƒ›, แƒ—แƒฃ แƒแƒ› แƒชแƒ•แƒšแƒแƒ“แƒก แƒแƒœ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก แƒแƒ  แƒแƒฅแƒ•แƒก แƒ›แƒ˜แƒœแƒ˜แƒญแƒ”แƒ‘แƒ แƒฌแƒ”แƒกแƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ— returnโ€” แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒœแƒฃแƒšแƒ˜.

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒแƒ  แƒ“แƒแƒ’แƒ•แƒ˜แƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒแƒ แƒแƒคแƒ”แƒ แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“ แƒ“แƒ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒชแƒแƒ แƒ˜แƒ”แƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ:

// ะะฐั…ะพะดะธะผ ัะปะตะผะตะฝั‚ั‹ foo
CxList libraries = All.FindByName("foo");

แƒ›แƒแƒ’แƒ แƒแƒ›, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒ›แƒ˜แƒ•แƒแƒ™แƒฃแƒ—แƒ•แƒœแƒ”แƒ— แƒฏแƒแƒ“แƒแƒกแƒœแƒฃแƒ แƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒก, แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒ˜แƒœแƒแƒฎแƒแƒ•แƒ— แƒ แƒแƒก แƒ’แƒ•แƒ˜แƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒ”แƒก แƒ–แƒแƒ แƒ˜:

// ะะฐั…ะพะดะธะผ ัะปะตะผะตะฝั‚ั‹ foo
CxList libraries = All.FindByName("foo");

// ะ’ั‹ะฒะพะดะธะผ, ะบะฐะบ ั€ะตะทัƒะปัŒั‚ะฐั‚ ะฒั‹ะฟะพะปะฝะตะฝะธั ะฟั€ะฐะฒะธะปะฐ
result = libraries

// ะ˜ะปะธ ะตั‰ะต ะบะพั€ะพั‡ะต
result = All.FindByName("foo");

แƒกแƒฎแƒ•แƒ แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ

Checkmarx-แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ”แƒฌแƒแƒ“แƒแƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒœแƒแƒšแƒแƒ’แƒ˜ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒœแƒแƒ–แƒ”. แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒกแƒแƒก, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒกแƒฎแƒ•แƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒงแƒแƒ•แƒ”แƒš แƒฏแƒ”แƒ แƒ–แƒ” แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒ”แƒ—แƒแƒ“แƒ˜แƒก แƒ–แƒแƒ แƒ˜แƒก แƒซแƒ˜แƒ”แƒ‘แƒ แƒ™แƒแƒ“แƒจแƒ˜, แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒซแƒแƒฎแƒ”แƒ— แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒšแƒ˜ แƒฌแƒ”แƒกแƒ˜:

// ะŸะพะปัƒั‡ะฐะตะผ ั€ะตะทัƒะปัŒั‚ะฐั‚ ะฒั‹ะฟะพะปะฝะตะฝะธั ะดั€ัƒะณะพะณะพ ะฟั€ะฐะฒะธะปะฐ
CxList methods = Find_Methods();

// ะ˜ั‰ะตะผ ะฒะฝัƒั‚ั€ะธ ะผะตั‚ะพะด foo. 
// ะ’ั‚ะพั€ะพะน ะฟะฐั€ะฐะผะตั‚ั€ false ะพะทะฝะฐั‡ะฐะตั‚, ั‡ั‚ะพ ะธั‰ะตะผ ะฑะตะท ั‡ัƒะฒัั‚ะฒะธั‚ะตะปัŒะฝะพัั‚ะธ ะบ ั€ะตะณะธัั‚ั€ัƒ
result = methods.FindByShortName("foo", false);

แƒ”แƒก แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒจแƒ”แƒแƒ›แƒชแƒ˜แƒ แƒแƒ— แƒ™แƒแƒ“แƒ˜ แƒ“แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒœแƒแƒ“ แƒจแƒ”แƒแƒ›แƒชแƒ˜แƒ แƒแƒ— แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒ.

แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ’แƒ•แƒแƒ แƒ”แƒ‘แƒ

แƒฎแƒ”-แƒขแƒงแƒ”

แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒแƒก แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒšแƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ“แƒแƒฃแƒงแƒแƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒฉแƒแƒฌแƒ”แƒ แƒ แƒ“แƒ แƒ’แƒ˜แƒฌแƒ”แƒ•แƒก แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒ˜, แƒกแƒชแƒแƒ“แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ”แƒ‘แƒ˜. แƒแƒกแƒ”แƒ—แƒ˜ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒก, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒกแƒ” แƒฐแƒฅแƒ•แƒ˜แƒ:

// ะะฐั…ะพะดะธะผ ั‡ั‚ะพ-ั‚ะพ
CxList toLog = All.FindByShortName("log");

// ะคะพั€ะผะธั€ัƒะตะผ ัั‚ั€ะพะบัƒ ะธ ะพั‚ะฟั€ะฐะฒะปัะตะผ ะฒ ะปะพะณ
cxLog.WriteDebugMessage (โ€œnumber of DOM elements =โ€ + All.Count);

แƒ›แƒแƒ’แƒ แƒแƒ› แƒฃแƒœแƒ“แƒ แƒ’แƒ•แƒแƒฎแƒกแƒแƒ•แƒ“แƒ”แƒก, แƒ แƒแƒ› แƒ”แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ— แƒกแƒ˜แƒ›แƒ”แƒ‘แƒ˜แƒแƒœแƒ˜แƒแƒกแƒ” แƒ แƒแƒ›, แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“ แƒœแƒแƒžแƒแƒ•แƒœแƒ˜ แƒ”แƒšแƒ”แƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ. แƒ›แƒ”แƒแƒ แƒ” แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒ แƒ˜แƒก แƒ“แƒ แƒแƒ“แƒแƒ“แƒ แƒ แƒฏแƒแƒ“แƒแƒกแƒœแƒฃแƒ แƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒญแƒ”แƒ‘แƒ result แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒ“แƒ แƒœแƒแƒฎแƒ”แƒ— แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ. แƒ”แƒก แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ แƒแƒ แƒช แƒ—แƒฃ แƒ˜แƒกแƒ” แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ; แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ“แƒ”แƒ—, แƒ แƒแƒ› แƒ™แƒแƒ“แƒจแƒ˜ แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ’แƒแƒ“แƒแƒฎแƒ แƒ”แƒ‘แƒ˜ แƒแƒœ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜. result แƒแƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ“แƒแƒแƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ— แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒ™แƒแƒ“แƒ˜. แƒแƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ—, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒ”, แƒ“แƒแƒ˜แƒ•แƒ˜แƒฌแƒงแƒแƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒแƒกแƒ”แƒ—แƒ˜ แƒ–แƒแƒ แƒ˜แƒก แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ แƒ›แƒ–แƒ แƒฌแƒ”แƒกแƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒ’แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒ—, แƒ แƒแƒขแƒแƒ› แƒแƒ แƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก.

แƒฃแƒคแƒ แƒ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ’แƒ–แƒแƒ แƒ›แƒ”แƒ—แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒ return แƒกแƒแƒญแƒ˜แƒ แƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒ—. แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒฌแƒ”แƒกแƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒกแƒ แƒฃแƒšแƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒซแƒšแƒ”แƒ‘แƒ— แƒ“แƒแƒ•แƒ˜แƒœแƒแƒฎแƒแƒ— แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ แƒ˜แƒ›แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒ แƒแƒช แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒ”แƒ—:

// ะะฐั…ะพะดะธะผ ั‡ั‚ะพ-ั‚ะพ
CxList toLog = All.FindByShortName("log");

// ะ’ั‹ะฒะพะดะธะผ ั€ะตะทัƒะปัŒั‚ะฐั‚ ะฒั‹ะฟะพะปะฝะตะฝะธั
return toLog

//ะ’ัะต, ั‡ั‚ะพ ะฝะฐะฟะธัะฐะฝะพ ะดะฐะปัŒัˆะต ะฝะต ะฑัƒะดะตั‚ ะฒั‹ะฟะพะปะฝะตะฝะพ
result = All.DataInfluencedBy(toLog)

แƒจแƒ”แƒกแƒ•แƒšแƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ

แƒแƒ แƒ˜แƒก แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒ”แƒ‘แƒ˜, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ•แƒ”แƒ  แƒจแƒ”แƒ“แƒ˜แƒฎแƒแƒ แƒ— CxAudit แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ–แƒ” (แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒ”แƒ แƒแƒ“). แƒแƒ›แƒ˜แƒก แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก, แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก แƒแƒ•แƒแƒ แƒ˜แƒ, แƒฃแƒ”แƒชแƒแƒ แƒ˜ Windows แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜, BSOD แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒ’แƒแƒฃแƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฉแƒ•แƒ”แƒœแƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒก แƒกแƒชแƒ˜แƒšแƒ“แƒ”แƒ‘แƒ. แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒ“แƒแƒฃแƒ›แƒ—แƒแƒ•แƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒกแƒ”แƒกแƒ˜แƒ, แƒ แƒแƒช แƒฎแƒ”แƒšแƒก แƒฃแƒจแƒšแƒ˜แƒก แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒจแƒ”แƒกแƒ•แƒšแƒแƒก. แƒ’แƒแƒ›แƒแƒกแƒแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒšแƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒแƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ:

Checkmarx-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก 8.6-แƒ›แƒ“แƒ”:

// ะŸั€ะพะฒะตั€ัะตะผ, ั‡ั‚ะพ ะตัั‚ัŒ ะทะฐะปะพะณะธะฝะตะฝั‹ะต ะฟะพะปัŒะทะพะฒะฐั‚ะตะปะธ, ะฒั‹ะฟะพะปะฝะธะฒ ะทะฐะฟั€ะพั ะฒ ะ‘ะ”
SELECT COUNT(*) FROM [CxDB].[dbo].LoggedinUser WHERE [ClientType] = 6;
 
// ะ•ัะปะธ ั‡ั‚ะพ-ั‚ะพ ะตัั‚ัŒ, ะฐ ะฝะฐ ัะฐะผะพะผ ะดะตะปะต ะดะฐะถะต ะตัะปะธ ะธ ะฝะตั‚, ะฟะพะฟั€ะพะฑะพะฒะฐั‚ัŒ ะฒั‹ะฟะพะปะฝะธั‚ัŒ ะทะฐะฟั€ะพั
DELETE FROM [CxDB].[dbo].LoggedinUser WHERE [ClientType] = 6;

Checkmarx-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก 8.6-แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’:

// ะŸั€ะพะฒะตั€ัะตะผ, ั‡ั‚ะพ ะตัั‚ัŒ ะทะฐะปะพะณะธะฝะตะฝั‹ะต ะฟะพะปัŒะทะพะฒะฐั‚ะตะปะธ, ะฒั‹ะฟะพะปะฝะธะฒ ะทะฐะฟั€ะพั ะฒ ะ‘ะ”
SELECT COUNT(*) FROM LoggedinUser WHERE (ClientType = 'Audit');
 
// ะ•ัะปะธ ั‡ั‚ะพ-ั‚ะพ ะตัั‚ัŒ, ะฐ ะฝะฐ ัะฐะผะพะผ ะดะตะปะต ะดะฐะถะต ะตัะปะธ ะธ ะฝะตั‚, ะฟะพะฟั€ะพะฑะพะฒะฐั‚ัŒ ะฒั‹ะฟะพะปะฝะธั‚ัŒ ะทะฐะฟั€ะพั
DELETE FROM [CxDB].[dbo].LoggedinUser WHERE (ClientType = 'Audit');

แƒฌแƒ”แƒ แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜

แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒ“แƒ˜แƒ•แƒแƒ แƒ— แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒœแƒแƒฌแƒ˜แƒšแƒ–แƒ”. แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒฌแƒ”แƒ แƒแƒก CxQL-แƒจแƒ˜, แƒ˜แƒก, แƒ แƒแƒช แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ’แƒแƒ™แƒšแƒ˜แƒแƒ—, แƒแƒ แƒ˜แƒก แƒแƒ แƒ แƒ˜แƒ›แƒ“แƒ”แƒœแƒแƒ“ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒญแƒ แƒ˜แƒก แƒชแƒแƒชแƒฎแƒแƒšแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒ“แƒ แƒ–แƒแƒ’แƒแƒ“แƒแƒ“ แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ.

แƒ•แƒ”แƒชแƒ“แƒ”แƒ‘แƒ˜ แƒชแƒแƒขแƒแƒ—แƒ˜ แƒ’แƒแƒ•แƒฃแƒแƒ“แƒ•แƒ˜แƒšแƒ แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒ แƒ›แƒแƒ—แƒ—แƒ•แƒ˜แƒก, แƒ•แƒ˜แƒœแƒช แƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒ”แƒœแƒแƒจแƒ˜ แƒฉแƒแƒซแƒ˜แƒ แƒ•แƒแƒก แƒ“แƒ แƒ›แƒแƒ•แƒ˜แƒงแƒ•แƒแƒœ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ Custom Queries-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒญแƒ แƒ”แƒšแƒแƒ“. แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ–แƒแƒ’แƒแƒ“แƒ˜แƒ แƒ“แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒแƒจแƒ˜ แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒฃแƒšแƒแƒ“ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”, แƒกแƒฎแƒ•แƒ”แƒ‘แƒ˜ แƒฃแƒคแƒ แƒ แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒฃแƒ แƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ—แƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“ แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒ—.

แƒแƒกแƒ” แƒ แƒแƒ›, แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ•แƒแƒฌแƒงแƒ“แƒ”แƒ‘แƒ˜แƒ—:

แฒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ: แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒœแƒแƒ™แƒแƒ“แƒ˜ แƒ“แƒ แƒ”แƒ แƒ—แƒ˜ แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜ แƒ›แƒ”แƒแƒ แƒ˜แƒก แƒ‘แƒฃแƒ“แƒ”แƒ, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒขแƒแƒ•แƒแƒ— แƒ”แƒ แƒ—แƒ˜ แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜.

แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜: แƒ›แƒแƒ แƒ—แƒšแƒแƒช, แƒ–แƒแƒ’แƒฏแƒ”แƒ  Checkmarx แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒœแƒแƒ™แƒแƒ“แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ“แƒแƒฎแƒฃแƒ แƒ“แƒ”แƒก แƒ“แƒ แƒ˜แƒงแƒแƒก แƒกแƒฎแƒ•แƒแƒ—แƒ แƒจแƒ”แƒ›แƒแƒ™แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ. แƒแƒกแƒ”แƒ—แƒ˜ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ ReduceFlow. แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒ“แƒแƒœ แƒ’แƒแƒ›แƒแƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”, แƒ˜แƒก แƒจแƒ”แƒแƒ แƒฉแƒ”แƒ•แƒก แƒฃแƒ›แƒแƒ™แƒšแƒ”แƒก แƒแƒœ แƒ’แƒ แƒซแƒ”แƒš แƒœแƒแƒ™แƒแƒ“แƒก:

// ะžัั‚ะฐะฒะธั‚ัŒ ั‚ะพะปัŒะบะพ ะดะปะธะฝะฝั‹ะต Flow
result = result.ReduceFlow(CxList.ReduceFlowType.ReduceSmallFlow);

// ะžัั‚ะฐะฒะธั‚ัŒ ั‚ะพะปัŒะบะพ ะบะพั€ะพั‚ะบะธะต Flow
result = result.ReduceFlow(CxList.ReduceFlowType.ReduceBigFlow);

แฒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ: แƒ’แƒแƒแƒคแƒแƒ แƒ—แƒแƒ•แƒ”แƒ— แƒ›แƒ’แƒ แƒซแƒœแƒแƒ‘แƒ˜แƒแƒ แƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ–แƒ”แƒช แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒ แƒ”แƒแƒ’แƒ˜แƒ แƒ”แƒ‘แƒก

แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜: Checkmarx-แƒก แƒแƒฅแƒ•แƒก แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒ แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒก แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒกแƒฎแƒ•แƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ. แƒแƒ› แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒแƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒ’แƒแƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒ™แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜. แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒฌแƒ”แƒกแƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒ“แƒแƒกแƒแƒฌแƒงแƒ”แƒ‘แƒแƒ“:

แƒ–แƒแƒ’แƒแƒ“แƒ˜_แƒ™แƒแƒœแƒคแƒ˜แƒ“แƒ”แƒœแƒชแƒ˜แƒแƒšแƒฃแƒ แƒแƒ‘แƒ˜แƒก_แƒ“แƒแƒ แƒฆแƒ•แƒ”แƒ•แƒ˜แƒก_แƒกแƒ˜แƒขแƒ˜

แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒแƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒชแƒ•แƒšแƒแƒ“แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒฉแƒ•แƒ”แƒœแƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒจแƒ˜ แƒ›แƒ’แƒ แƒซแƒœแƒแƒ‘แƒ˜แƒแƒ แƒ” แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒแƒœแƒแƒฎแƒแƒ“:

// ะŸะพะปัƒั‡ะฐะตะผ ั€ะตะทัƒะปัŒั‚ะฐั‚ ะฒั‹ะฟะพะปะฝะตะฝะธั ะฑะฐะทะพะฒะพะณะพ ะฟั€ะฐะฒะธะปะฐ
result = base.General_privacy_violation_list();

// ะ˜ั‰ะตะผ ัะปะตะผะตะฝั‚ั‹, ะบะพั‚ะพั€ั‹ะต ะฟะพะฟะฐะดะฐัŽั‚ ะฟะพะด ะฟั€ะพัั‚ั‹ะต ั€ะตะณัƒะปัั€ะฝั‹ะต ะฒั‹ั€ะฐะถะตะฝะธั. ะœะพะถะฝะพ ะดะพะฟะพะปะฝะธั‚ัŒ ั…ะฐั€ะฐะบั‚ะตั€ะฝั‹ะผะธ ะดะปั ะฒะฐั ะฟะฐั‚ั‚ะตั€ะฝะฐะผะธ.
CxList personalList = All.FindByShortNames(new List<string> {
	"*securityToken*", "*sessionId*"}, false);

// ะ”ะพะฑะฐะฒะปัะตะผ ะบ ะบะพะฝะตั‡ะฝะพะผัƒ ั€ะตะทัƒะปัŒั‚ะฐั‚ัƒ
result.Add(personalList);

แฒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ: แƒ’แƒแƒแƒคแƒแƒ แƒ—แƒแƒ•แƒ”แƒ— แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ แƒžแƒแƒ แƒแƒšแƒ”แƒ‘แƒ˜แƒ—

แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜: แƒ›แƒ” แƒ’แƒ˜แƒ แƒฉแƒ”แƒ•แƒ— แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒ›แƒ˜แƒแƒฅแƒชแƒ˜แƒแƒ— แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒ แƒ™แƒแƒ“แƒ˜แƒ— แƒžแƒแƒ แƒแƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ˜แƒก แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“ แƒฌแƒ”แƒกแƒก แƒ“แƒ แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒ›แƒแƒกแƒจแƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒแƒจแƒ˜.

แƒžแƒแƒ แƒแƒšแƒ˜_แƒ™แƒแƒœแƒคแƒ˜แƒ“แƒ”แƒœแƒชแƒ˜แƒแƒšแƒฃแƒ แƒแƒ‘แƒ˜แƒก_แƒ“แƒแƒ แƒฆแƒ•แƒ”แƒ•แƒ˜แƒก_แƒกแƒ˜แƒขแƒ˜

CxList allStrings = All.FindByType("String"); 
allStrings.Add(All.FindByType(typeof(StringLiteral))); 
allStrings.Add(Find_UnknownReference());
allStrings.Add(All.FindByType(typeof (Declarator)));
allStrings.Add(All.FindByType(typeof (MemberAccess)));
allStrings.Add(All.FindByType(typeof(EnumMemberDecl))); 
allStrings.Add(Find_Methods().FindByShortName("get*"));

// ะ”ะพะฟะพะปะฝัะตะผ ะดะตั„ะพะปั‚ะฝั‹ะน ัะฟะธัะพะบ ะฟะตั€ะตะผะตะฝะฝั‹ั…
List < string > pswdIncludeList = new List<string>{"*password*", "*psw", "psw*", "pwd*", "*pwd", "*authKey*", "pass*", "cipher*", "*cipher", "pass", "adgangskode", "benutzerkennwort", "chiffre", "clave", "codewort", "contrasena", "contrasenya", "geheimcode", "geslo", "heslo", "jelszo", "kennwort", "losenord", "losung", "losungswort", "lozinka", "modpas", "motdepasse", "parol", "parola", "parole", "pasahitza", "pasfhocal", "passe", "passord", "passwort", "pasvorto", "paswoord", "salasana", "schluessel", "schluesselwort", "senha", "sifre", "wachtwoord", "wagwoord", "watchword", "zugangswort", "PAROLACHIAVE", "PAROLA CHIAVE", "PAROLECHIAVI", "PAROLE CHIAVI", "paroladordine", "verschluesselt", "sisma",
                "pincode",
								"pin"};
								
List < string > pswdExcludeList = new List<string>{"*pass", "*passable*", "*passage*", "*passenger*", "*passer*", "*passing*", "*passion*", "*passive*", "*passover*", "*passport*", "*passed*", "*compass*", "*bypass*", "pass-through", "passthru", "passthrough", "passbytes", "passcount", "passratio"};

CxList tempResult = allStrings.FindByShortNames(pswdIncludeList, false);
CxList toRemove = tempResult.FindByShortNames(pswdExcludeList, false);
tempResult -= toRemove;
tempResult.Add(allStrings.FindByShortName("pass", false));

foreach (CxList r in tempResult)
{
	CSharpGraph g = r.data.GetByIndex(0) as CSharpGraph;
	if(g != null && g.ShortName != null && g.ShortName.Length < 50)
	{
		result.Add(r);
	}
}

แฒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ: แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฉแƒแƒ แƒฉแƒแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜ Checkmarx-แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ 

แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜: Checkmarx-แƒจแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒ“แƒแƒงแƒแƒคแƒ˜แƒšแƒ˜แƒ แƒ”แƒœแƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒแƒกแƒ” แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ”แƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒแƒกแƒ”แƒ—แƒ˜ แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜.

แƒ—แƒฃ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒ•แƒกแƒ”แƒ‘แƒ”แƒœ แƒแƒœ แƒชแƒ•แƒšแƒ˜แƒแƒœ แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒš แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒแƒก, แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒ”แƒ›แƒแƒขแƒแƒก แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“ แƒฌแƒ”แƒกแƒก. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒงแƒ•แƒ”แƒšแƒ, แƒ•แƒ˜แƒœแƒช แƒ›แƒแƒก แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก, แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒ’แƒแƒ˜แƒ’แƒ”แƒ‘แƒก แƒแƒฎแƒแƒš แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒก. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, Android-แƒจแƒ˜ แƒจแƒ”แƒกแƒ•แƒšแƒ˜แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜ แƒแƒ แƒ˜แƒก Timber แƒ“แƒ Loggi. แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“ แƒžแƒแƒ™แƒ”แƒขแƒจแƒ˜ แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒแƒ แƒแƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒกแƒ” แƒ แƒแƒ›, แƒ—แƒฃ แƒžแƒแƒ แƒแƒšแƒ˜ แƒแƒœ แƒกแƒ”แƒกแƒ˜แƒ˜แƒก แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒแƒ แƒ˜ แƒ›แƒแƒฎแƒ•แƒ“แƒ”แƒ‘แƒ แƒŸแƒฃแƒ แƒœแƒแƒšแƒจแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒแƒ  แƒ•แƒ˜แƒชแƒ˜แƒ—. แƒจแƒ”แƒ•แƒ”แƒชแƒแƒ“แƒแƒ— แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒแƒ— แƒแƒกแƒ”แƒ—แƒ˜ แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ”แƒ‘แƒ˜ Checkmarx-แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒก.

แƒกแƒแƒขแƒ”แƒกแƒขแƒ แƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒขแƒ˜แƒ›แƒ‘แƒ”แƒ  แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒแƒก แƒจแƒ”แƒกแƒ•แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก:

package com.death.timberdemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import timber.log.Timber;

public class MainActivity extends AppCompatActivity {
    private static final String TAG = MainActivity.class.getSimpleName();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Timber.e("Error Message");
        Timber.d("Debug Message");

        Timber.tag("Some Different tag").e("And error message");
    }
}

แƒ“แƒ แƒแƒฅ แƒแƒ แƒ˜แƒก Checkmarx-แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ›แƒแƒ’แƒชแƒ”แƒ›แƒ— แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— Timber แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒ“แƒแƒœ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒกแƒ•แƒšแƒ”แƒšแƒ˜:

FindAndroidOutputs

// ะŸะพะปัƒั‡ะฐะตะผ ั€ะตะทัƒะปัŒั‚ะฐั‚ ะฒั‹ะฟะพะปะฝะตะฝะธั ะฑะฐะทะพะฒะพะณะพ ะฟั€ะฐะฒะธะปะฐ
result = base.Find_Android_Outputs();

// ะ”ะพะฟะพะปะฝัะตะผ ะฒั‹ะทะพะฒะฐะผะธ, ะบะพั‚ะพั€ั‹ะต ะฟั€ะธั…ะพะดัั‚ ะธะท ะฑะธะฑะปะธะพั‚ะตะบะธ Timber
CxList timber = All.FindByExactMemberAccess("Timber.*") +
    All.FindByShortName("Timber").GetMembersOfTarget();

// ะ”ะพะฑะฐะฒะปัะตะผ ะบ ะบะพะฝะตั‡ะฝะพะผัƒ ั€ะตะทัƒะปัŒั‚ะฐั‚ัƒ
result.Add(timber);

แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒ›แƒ”แƒ–แƒแƒ‘แƒ”แƒšแƒ˜ แƒฌแƒ”แƒกแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒ”แƒฎแƒ”แƒ‘แƒ Android-แƒจแƒ˜ แƒจแƒ”แƒกแƒ•แƒšแƒแƒก:

FindAndroidLog_Outputs

// ะŸะพะปัƒั‡ะฐะตะผ ั€ะตะทัƒะปัŒั‚ะฐั‚ ะฒั‹ะฟะพะปะฝะตะฝะธั ะฑะฐะทะพะฒะพะณะพ ะฟั€ะฐะฒะธะปะฐ
result = base.Find_Android_Log_Outputs();

// ะ”ะพะฟะพะปะฝัะตะผ ะฒั‹ะทะพะฒะฐะผะธ, ะบะพั‚ะพั€ั‹ะต ะฟั€ะธั…ะพะดัั‚ ะธะท ะฑะธะฑะปะธะพั‚ะตะบะธ Timber
result.Add(
  All.FindByExactMemberAccess("Timber.*") +
  All.FindByShortName("Timber").GetMembersOfTarget()
);

แƒแƒกแƒ”แƒ•แƒ”, แƒ—แƒฃ Android แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ›แƒ”แƒœแƒ”แƒฏแƒ”แƒ แƒ˜ แƒแƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒšแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ™แƒแƒ แƒ’แƒ˜ แƒ˜แƒ“แƒ”แƒแƒ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒแƒชแƒœแƒแƒ‘แƒแƒ— Checkmarx-แƒก แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— getInputData:

FindAndroidRead

// ะŸะพะปัƒั‡ะฐะตะผ ั€ะตะทัƒะปัŒั‚ะฐั‚ ะฒั‹ะฟะพะปะฝะตะฝะธั ะฑะฐะทะพะฒะพะณะพ ะฟั€ะฐะฒะธะปะฐ
result = base.Find_Android_Read();

// ะ”ะพะฟะพะปะฝัะตะผ ะฒั‹ะทะพะฒะพะผ ั„ัƒะฝะบั†ะธะธ getInputData, ะบะพั‚ะพั€ะฐั ะธัะฟะพะปัŒะทัƒะตั‚ัั ะฒ WorkManager
CxList getInputData = All.FindByShortName("getInputData");

// ะ”ะพะฑะฐะฒะปัะตะผ ะบ ะบะพะฝะตั‡ะฝะพะผัƒ ั€ะตะทัƒะปัŒั‚ะฐั‚ัƒ
result.Add(getInputData.GetMembersOfTarget());

แฒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ: แƒกแƒ”แƒœแƒกแƒ˜แƒขแƒ˜แƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒซแƒ˜แƒ”แƒ‘แƒ plist-แƒจแƒ˜ iOS แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜: iOS แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ  แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒก .plist แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ˜แƒ— แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒœแƒแƒฎแƒแƒ“. แƒแƒ› แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒจแƒ˜ แƒžแƒแƒ แƒแƒšแƒ”แƒ‘แƒ˜แƒก, แƒŸแƒ”แƒขแƒแƒœแƒ”แƒ‘แƒ˜แƒก, แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒ›แƒ’แƒ แƒซแƒœแƒแƒ‘แƒ˜แƒแƒ แƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ แƒ”แƒ™แƒแƒ›แƒ”แƒœแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ›แƒแƒ—แƒ˜ แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒ“แƒแƒœ แƒฃแƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒ“.

Plist แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒก แƒแƒฅแƒ•แƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒจแƒ”แƒฃแƒ˜แƒแƒ แƒแƒฆแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ—แƒ•แƒแƒšแƒ˜แƒ— แƒแƒ  แƒฉแƒแƒœแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ Checkmarx-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒฌแƒ”แƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒ˜แƒซแƒ˜แƒ”แƒ‘แƒก แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒ“แƒ แƒ’แƒ•แƒ”แƒขแƒงแƒ•แƒ˜แƒก แƒแƒ แƒ˜แƒก แƒ—แƒฃ แƒแƒ แƒ แƒกแƒแƒ“แƒ›แƒ” แƒœแƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ˜ แƒžแƒแƒ แƒแƒšแƒ”แƒ‘แƒ˜ แƒแƒœ แƒŸแƒ”แƒขแƒแƒœแƒ”แƒ‘แƒ˜.

แƒแƒกแƒ”แƒ—แƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก backend แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ—แƒแƒœ แƒ™แƒแƒ›แƒฃแƒœแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒœแƒ˜แƒจแƒแƒœแƒก:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>DeviceDictionary</key>
	<dict>
		<key>phone</key>
		<string>iPhone 6s</string>
	</dict>
	<key>privatekey</key>
	<string>MIICXAIBAAKBgQCqGKukO1De7zhZj6+</string>
</dict>
</plist>

แƒ“แƒ Checkmarx-แƒ˜แƒก แƒฌแƒ”แƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒฅแƒ•แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒœแƒ˜แƒฃแƒแƒœแƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒœแƒ“แƒ แƒ˜แƒฅแƒœแƒแƒก แƒ’แƒแƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฌแƒ”แƒ แƒ˜แƒกแƒแƒก:

// ะ˜ัะฟะพะปัŒะทัƒะตะผ ั€ะตะทัƒะปัŒั‚ะฐั‚ ะฒั‹ะฟะพะปะฝะตะฝะธั ะฟั€ะฐะฒะธะปะฐ ะฟะพ ะฟะพะธัะบัƒ ั„ะฐะนะปะพะฒ plist, ั‡ั‚ะพะฑั‹ ัƒะผะตะฝัŒัˆะธั‚ัŒ ะฒั€ะตะผั ั€ะฐะฑะพั‚ั‹ ะฟั€ะฐะฒะธะปะฐ ะธ 
CxList plist = Find_Plist_Elements();

// ะ˜ะฝะธั†ะธะฐะปะธะทะธั€ัƒะตะผ ะฝะพะฒัƒัŽ ะฟะตั€ะตะผะตะฝะฝัƒัŽ
CxList dictionarySettings = All.NewCxList();

// ะขะตะฟะตั€ัŒ ะดะพะฑะฐะฒะธะผ ะฟะพะธัะบ ะฒัะตั… ะธะฝั‚ะตั€ะตััƒัŽั‰ะธั… ะฝะฐั ะทะฝะฐั‡ะตะฝะธะน. ะ’ ะดะฐะปัŒะฝะตะนัˆะตะผ ะผะพะถะฝะพ ั€ะฐััˆะธั€ัั‚ัŒ ัั‚ะพั‚ ัะฟะธัะพะบ.
// ะ”ะปั ะฟะพะธัะบะฐ ะทะฝะฐั‡ะตะฝะธะน, ะบะฐะบ ะฝะธ ัั‚ั€ะฐะฝะฝะพ, ะธัะฟะพะปัŒะทัƒะตั‚ัั FindByMemberAccess - ะฟะพะธัะบ ะพะฑั€ะฐั‰ะตะฝะธะน ะบ ะผะตั‚ะพะดะฐะผ. ะ’ั‚ะพั€ะพะน ะฟะฐั€ะฐะผะตั‚ั€ ะฒะฝัƒั‚ั€ะธ ั„ัƒะฝะบั†ะธะธ, false, ะพะทะฝะฐั‡ะฐะตั‚, ั‡ั‚ะพ ะฟะพะธัะบ ะฝะตั‡ัƒะฒัั‚ะฒะธั‚ะตะปะตะฝ ะบ ั€ะตะณะธัั‚ั€ัƒ
dictionarySettings.Add(plist.FindByMemberAccess("privatekey", false));
dictionarySettings.Add(plist.FindByMemberAccess("privatetoken", false));

// ะ”ะปั ะบะพั€ั€ะตะบั‚ะฝะพะณะพ ะฟะพะธัะบะฐ ะธะท-ะทะฐ ะพัะพะฑะตะฝะฝะพัั‚ะตะน ัั‚ั€ัƒะบั‚ัƒั€ั‹ plist - ะฝัƒะถะฝะพ ะธัะบะฐั‚ัŒ ะฟะพ ั‚ะธะฟัƒ "If statement"
CxList ifStatements = plist.FindByType(typeof(IfStmt));

// ะ”ะพะฑะฐะฒะปัะตะผ ะฒ ั€ะตะทัƒะปัŒั‚ะฐั‚, ะฟะตั€ะตะด ัั‚ะธะผ ะฟะพะปัƒั‡ะธะฒ ั€ะพะดะธั‚ะตะปัŒัะบะธะน ัƒะทะตะป - ะดะปั ะฟั€ะฐะฒะธะปัŒะฝะพะณะพ ะพั‚ะพะฑั€ะฐะถะตะฝะธั
result = dictionarySettings.FindByFathers(ifStatements);

แฒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ: แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒซแƒ˜แƒ”แƒ‘แƒ XML-แƒจแƒ˜

แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜: Checkmarx-แƒก แƒแƒฅแƒ•แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ XML-แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก, แƒขแƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก, แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒกแƒฎแƒ•แƒแƒ—แƒ แƒกแƒแƒซแƒ˜แƒ”แƒ‘แƒšแƒแƒ“. แƒ›แƒแƒ’แƒ แƒแƒ›, แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“, แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒจแƒ˜ แƒ˜แƒงแƒ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ, แƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒช แƒแƒ แƒช แƒ”แƒ แƒ—แƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก. แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ› แƒ”แƒก แƒฎแƒแƒ แƒ•แƒ”แƒ–แƒ˜ แƒแƒฆแƒ›แƒแƒคแƒฎแƒ•แƒ แƒ˜แƒšแƒ˜แƒ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒฃแƒแƒฎแƒšแƒ”แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒจแƒ˜, แƒคแƒ แƒ—แƒฎแƒ˜แƒšแƒแƒ“ แƒ˜แƒงแƒแƒ•แƒ˜แƒ—, แƒ—แƒฃ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒฃแƒคแƒ แƒ แƒแƒ“แƒ แƒ”แƒฃแƒš แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒก.

แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜:

// ะšะพะด ั€ะฐะฑะพั‚ะฐั‚ัŒ ะฝะต ะฑัƒะดะตั‚
result = All.FindXmlAttributesByNameAndValue("*.app", 8, โ€œidโ€, "error- section", false, true);

แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช All แƒแƒกแƒ”แƒ—แƒ˜ แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก... แƒ“แƒ แƒ”แƒก แƒ›แƒแƒ แƒ—แƒแƒšแƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜, แƒชแƒแƒšแƒ™แƒ” แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ” XML-แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“ - cxXPath. แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ แƒกแƒฌแƒแƒ แƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ Android-แƒจแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒ›แƒแƒกแƒแƒซแƒ”แƒ‘แƒœแƒแƒ“, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช HTTP แƒขแƒ แƒแƒคแƒ˜แƒ™แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ˜แƒซแƒšแƒ”แƒ•แƒ:

// ะŸั€ะฐะฒะธะปัŒะฝั‹ะน ะฒะฐั€ะธะฐะฝั‚ ั ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะตะผ cxXPath
result = cxXPath.FindXmlAttributesByNameAndValue("*.xml", 8, "cleartextTrafficPermitted", "true", false, true);

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ›แƒแƒก แƒชแƒแƒขแƒ แƒฃแƒคแƒ แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“, แƒ แƒแƒ“แƒ’แƒแƒœ แƒงแƒ•แƒ”แƒšแƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜ แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜แƒ, แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ แƒแƒช แƒ”แƒ แƒ—แƒก แƒ’แƒแƒแƒ แƒ™แƒ•แƒ˜แƒ”แƒ—, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒแƒ˜แƒ แƒฉแƒ˜แƒแƒ— แƒ˜แƒก, แƒ แƒแƒช แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ—. แƒแƒกแƒ” แƒ แƒแƒ›, แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒแƒ‘แƒ˜แƒ— แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—:

  • "*.xml"โ€” แƒ›แƒแƒกแƒแƒซแƒ˜แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒœแƒ˜แƒฆแƒแƒ‘แƒ˜

  • 8 - แƒ”แƒœแƒ˜แƒก id, แƒ แƒแƒ›แƒ”แƒšแƒ–แƒ”แƒ“แƒแƒช แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ”แƒก แƒฌแƒ”แƒกแƒ˜

  • "cleartextTrafficPermitted"- แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ xml-แƒจแƒ˜

  • "true" - แƒแƒ› แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ

  • false โ€” แƒ แƒ”แƒ’แƒฃแƒšแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒฎแƒแƒขแƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒซแƒ˜แƒ”แƒ‘แƒ˜แƒกแƒแƒก

  • true โ€” แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒซแƒ˜แƒ”แƒ‘แƒ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒ‘แƒ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ˜แƒก แƒฃแƒ’แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒงแƒแƒคแƒ˜แƒ—, แƒแƒœแƒฃ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒฌแƒ”แƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒก แƒแƒ แƒแƒกแƒฌแƒแƒ , แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ”แƒ‘แƒ˜แƒก แƒ—แƒ•แƒแƒšแƒกแƒแƒ–แƒ แƒ˜แƒกแƒ˜แƒ—, แƒฅแƒกแƒ”แƒšแƒฃแƒ แƒ˜ แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒก Android-แƒจแƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒแƒซแƒšแƒ”แƒ•แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ—แƒแƒœ แƒ™แƒแƒ›แƒฃแƒœแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก HTTP แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜แƒ—. แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ˜แƒก แƒจแƒ”แƒ›แƒชแƒ•แƒ”แƒšแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ cleartextTrafficPermitted แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒ— true:

<network-security-config>
    <domain-config>
        <domain includeSubdomains="true">example.com</domain>
        <trust-anchors>
            <certificates src="@raw/my_ca"/>
        </trust-anchors>
        <domain-config cleartextTrafficPermitted="true">
            <domain includeSubdomains="true">secure.example.com</domain>
        </domain-config>
    </domain-config>
</network-security-config>

แฒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ: แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก/แƒ’แƒ–แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—

แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜: แƒ”แƒ แƒ—-แƒ”แƒ แƒ— แƒ›แƒกแƒฎแƒ•แƒ˜แƒš แƒžแƒ แƒแƒ”แƒฅแƒขแƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ Android-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒแƒกแƒ—แƒแƒœ, แƒจแƒ”แƒ’แƒ•แƒฎแƒ•แƒ“แƒ แƒฌแƒ”แƒกแƒ˜แƒก แƒชแƒ แƒฃ แƒžแƒแƒ–แƒ˜แƒขแƒ˜แƒ•แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒก แƒ‘แƒฃแƒœแƒ“แƒแƒ•แƒแƒœ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒก. แƒคแƒแƒฅแƒขแƒ˜แƒ, แƒ แƒแƒ› แƒคแƒแƒ˜แƒšแƒจแƒ˜ แƒซแƒ”แƒ‘แƒœแƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒ˜แƒชแƒฎแƒ•แƒ˜แƒก แƒฌแƒ”แƒกแƒ˜ build.gradle แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒกแƒ›แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ‘แƒฃแƒœแƒ“แƒแƒ•แƒแƒœแƒ˜ แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒ–แƒ”.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒ“แƒ˜แƒ“ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒจแƒ˜ แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒ‘แƒแƒ•แƒจแƒ•แƒ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ build.gradle, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ”แƒฎแƒ”แƒ‘แƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒจแƒ˜ แƒจแƒ”แƒ›แƒแƒ•แƒแƒš แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒก. แƒ—แƒแƒ•แƒ˜แƒกแƒ”แƒ‘แƒฃแƒ แƒ”แƒ‘แƒ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒ›แƒแƒจแƒ˜แƒœแƒแƒช แƒ™แƒ˜, แƒ—แƒฃ แƒ”แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒแƒ  แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ”แƒœ แƒ“แƒแƒ‘แƒ˜แƒœแƒ“แƒ•แƒ˜แƒก แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒแƒ–แƒ”, แƒจแƒ”แƒ“แƒ’แƒ”แƒœแƒ˜แƒกแƒแƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒก แƒแƒกแƒแƒ›แƒ‘แƒšแƒ”แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜.

แƒแƒ›แƒ แƒ˜แƒ’แƒแƒ“, แƒแƒ›แƒแƒชแƒแƒœแƒแƒ แƒ’แƒแƒ›แƒแƒ แƒ—แƒแƒ— แƒขแƒ แƒ˜แƒ’แƒ”แƒ แƒ”แƒ‘แƒ˜ แƒกแƒแƒ‘แƒแƒ•แƒจแƒ•แƒ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒจแƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ”แƒ™แƒฃแƒ—แƒ•แƒœแƒ˜แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒก. แƒ›แƒแƒ—แƒ˜ แƒแƒ›แƒแƒชแƒœแƒแƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒฎแƒแƒ–แƒ˜แƒก แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ˜แƒ— apply 'com.android.library'.

แƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒ“แƒแƒœ build.gradle, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒก แƒ“แƒแƒ‘แƒ˜แƒœแƒ“แƒ•แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒแƒก:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.2"
    defaultConfig {
        ...
    }

    buildTypes {
        release {
            minifyEnabled true
            ...
        }
    }
}

dependencies {
  ...
}

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒคแƒแƒ˜แƒšแƒ˜ build.gradle แƒžแƒ แƒแƒ”แƒฅแƒขแƒจแƒ˜ แƒจแƒ”แƒ›แƒแƒ•แƒแƒšแƒ˜ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒ  แƒแƒฅแƒ•แƒก แƒ”แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜:

apply plugin: 'android-library'

dependencies {
  compile 'com.android.support:support-v4:18.0.+'
}

android {
  compileSdkVersion 14
  buildToolsVersion '17.0.0'
  ...
}

แƒ“แƒ Checkmarx-แƒ˜แƒก แƒฌแƒ”แƒกแƒ˜:

ProGuardObfuscationNotInUse

// ะŸะพะธัะบ ะผะตั‚ะพะดะฐ release ัั€ะตะดะธ ะฒัะตั… ะผะตั‚ะพะดะพะฒ ะฒ Gradle ั„ะฐะนะปะฐั…
CxList releaseMethod = Find_Gradle_Method("release");

// ะ’ัะต ะพะฑัŠะตะบั‚ั‹ ะธะท ั„ะฐะนะปะพะฒ build.gradle
CxList gradleBuildObjects = Find_Gradle_Build_Objects();

// ะŸะพะธัะบ ั‚ะพะณะพ, ั‡ั‚ะพ ะฝะฐั…ะพะดะธั‚ัั ะฒะฝัƒั‚ั€ะธ ะผะตั‚ะพะดะฐ "release" ัั€ะตะดะธ ะฒัะตั… ะพะฑัŠะตะบั‚ะพะฒ ะธะท ั„ะฐะนะปะพะฒ build.gradle
CxList methodInvokesUnderRelease = gradleBuildObjects.FindByType(typeof(MethodInvokeExpr)).GetByAncs(releaseMethod);

// ะ˜ั‰ะตะผ ะฒะฝัƒั‚ั€ะธ gradle-ั„ะฐะนะปะพะฒ ัั‚ั€ะพะบัƒ "com.android.library" - ัั‚ะพ ะทะฝะฐั‡ะธั‚, ั‡ั‚ะพ ะดะฐะฝะฝั‹ะน ั„ะฐะนะป ะพั‚ะฝะพัะธั‚ัั ะบ ะฑะธะฑะปะธะพั‚ะตะบะต ะธ ะตะณะพ ะฝะตะพะฑั…ะพะดะธะผะพ ะธัะบะปัŽั‡ะธั‚ัŒ ะธะท ะฟั€ะฐะฒะธะปะฐ
CxList android_library = gradleBuildObjects.FindByName("com.android.library");

// ะ˜ะฝะธั†ะธะฐะปะธะทะฐั†ะธั ะฟัƒัั‚ะพะณะพ ะผะฐััะธะฒะฐ
List<string> libraries_path = new List<string> {};

// ะŸั€ะพั…ะพะดะธะผ ั‡ะตั€ะตะท ะฒัะต ะฝะฐะนะดะตะฝะฝั‹ะต "ะดะพั‡ะตั€ะฝะธะต" ั„ะฐะนะปั‹
foreach(CxList library in android_library)
{
    // ะŸะพะปัƒั‡ะฐะตะผ ะฟัƒั‚ัŒ ะบ ะบะฐะถะดะพะผัƒ ั„ะฐะนะปัƒ
	string file_name_library = library.GetFirstGraph().LinePragma.FileName;
    
    // ะ”ะพะฑะฐะฒะปัะตะผ ะตะณะพ ะฒ ะฝะฐัˆ ะผะฐััะธะฒ
	libraries_path.Add(file_name_library);
}

// ะ˜ั‰ะตะผ ะฒัะต ะฒั‹ะทะพะฒั‹ ะฒะบะปัŽั‡ะตะฝะธั ะพะฑั„ัƒัะบะฐั†ะธะธ ะฒ ั€ะตะปะธะทะฝั‹ั… ะฝะฐัั‚ั€ะพะนะบะฐั…
CxList minifyEnabled = methodInvokesUnderRelease.FindByShortName("minifyEnabled");

// ะŸะพะปัƒั‡ะฐะตะผ ะฟะฐั€ะฐะผะตั‚ั€ั‹ ัั‚ะธั… ะฒั‹ะทะพะฒะพะฒ
CxList minifyValue = gradleBuildObjects.GetParameters(minifyEnabled, 0);

// ะ˜ั‰ะตะผ ัั€ะตะดะธ ะฝะธั… ะฒะบะปัŽั‡ะตะฝะฝั‹ะต
CxList minifyValueTrue = minifyValue.FindByShortName("true");

// ะะตะผะฝะพะณะพ ะผะฐะณะธะธ, ะตัะปะธ ะฝะต ะฝะฐัˆะปะธ ัั‚ะฐะฝะดะฐั€ั‚ะฝั‹ะผ ัะฟะพัะพะฑะพะผ :D
if (minifyValueTrue.Count == 0) {
	minifyValue = minifyValue.FindByAbstractValue(abstractValue => abstractValue is TrueAbstractValue);
} else {
    // ะ ะตัะปะธ ะฒัั‘-ั‚ะฐะบะธ ะฝะฐัˆะปะธ, ั‚ะพ ะฟั€ะตะดั‹ะดัƒั‰ะธะน ั€ะตะทัƒะปัŒั‚ะฐั‚ ะธ ะพัั‚ะฐะฒะปัะตะผ
	minifyValue = minifyValueTrue;	
}

// ะ•ัะปะธ ะฝะต ะฝะฐัˆะปะพััŒ ั‚ะฐะบะธั… ะผะตั‚ะพะดะพะฒ
if (minifyValue.Count == 0)
{
    // ะ”ะปั ะฑะพะปะตะต ะบะพั€ั€ะตะบั‚ะฝะพะณะพ ะพั‚ะพะฑั€ะฐะถะตะฝะธั ะผะตัั‚ะฐ ัั€ะฐะฑะฐั‚ั‹ะฒะฐะฝะธั ะฒ ั„ะฐะนะปะต ะธั‰ะตะผ ะธะปะธ buildTypes ะธะปะธ android
	CxList tempResult = All.NewCxList();
	CxList buildTypes = Find_Gradle_Method("buildTypes");
	if (buildTypes.Count > 0) {
		tempResult = buildTypes;
	} else {
		tempResult = Find_Gradle_Method("android");
	}
	
	// ะ”ะปั ะบะฐะถะดะพะณะพ ะธะท ะฝะฐะนะดะตะฝะฝั‹ั… ะผะตัั‚ ัั€ะฐะฑะฐั‚ั‹ะฒะฐะฝะธั ะฟั€ะพั…ะพะดะธะผ ะธ ะพะฟั€ะตะดะตะปัะตะผ, ะดะพั‡ะตั€ะฝะธะน ะธะปะธ ะพัะฝะพะฒะฝะพะน ั„ะฐะนะปั‹ ัะฑะพั€ะบะธ
	foreach(CxList res in tempResult)
	{
        // ะžะฟั€ะตะดะตะปัะตะผ, ะฒ ะบะฐะบะพะผ ั„ะฐะนะปะต ะฑั‹ะป ะฝะฐะนะดะตะฝ buildType ะธะปะธ android ะผะตั‚ะพะดั‹
		string file_name_result = res.GetFirstGraph().LinePragma.FileName;
        
        // ะ•ัะปะธ ั‚ะฐะบะพะณะพ ั„ะฐะนะปะฐ ะฝะตั‚ ะฒ ะฝะฐัˆะตะผ ัะฟะธัะบะต "ะดะพั‡ะตั€ะฝะธั…" ั„ะฐะนะปะพะฒ - ะทะฝะฐั‡ะธั‚ ัั‚ะพ ะพัะฝะพะฒะฝะพะน ั„ะฐะนะป ะธ ะตะณะพ ะผะพะถะฝะพ ะดะพะฑะฐะฒะธั‚ัŒ ะฒ ั€ะตะทัƒะปัŒั‚ะฐั‚
		if (libraries_path.Contains(file_name_result) == false){
			result.Add(res);
		}
	}
}

แƒ”แƒก แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒฃแƒœแƒ˜แƒ•แƒ”แƒ แƒกแƒแƒšแƒฃแƒ แƒ˜ แƒ“แƒ แƒ’แƒแƒ›แƒแƒกแƒแƒ“แƒ”แƒ’แƒ˜ แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ Android แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒกแƒฎแƒ•แƒ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒกแƒแƒช, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ“แƒ’แƒ˜แƒœแƒแƒ—, แƒ”แƒ™แƒฃแƒ—แƒ•แƒœแƒ˜แƒก แƒ—แƒฃ แƒแƒ แƒ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒš แƒคแƒแƒ˜แƒšแƒก.

แฒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ: แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒ›แƒฎแƒแƒ แƒ˜แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ—แƒฃ แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜ แƒกแƒ แƒฃแƒšแƒแƒ“ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜

แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜: แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒฉแƒแƒ แƒฉแƒแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜, แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒแƒ  แƒแƒ แƒ˜แƒก แƒฉแƒแƒ แƒขแƒ”แƒ‘แƒจแƒ˜. แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, Checkmarx-แƒ›แƒ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒแƒ  แƒ˜แƒชแƒ˜แƒก แƒ›แƒแƒ—แƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ“แƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒแƒ แƒ•แƒแƒกแƒฌแƒแƒ•แƒšแƒแƒ— แƒ›แƒแƒก แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ’แƒ”แƒ‘แƒ, แƒ แƒแƒ› แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜ แƒกแƒฌแƒแƒ แƒ”แƒ“ แƒแƒ› แƒฉแƒแƒ แƒฉแƒแƒก แƒ”แƒ™แƒฃแƒ—แƒ•แƒœแƒ˜แƒก. แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒ”แƒก แƒ’แƒแƒ แƒ—แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ˜แƒ›แƒ˜แƒ—, แƒ แƒแƒ› แƒคแƒ แƒ”แƒ˜แƒ›แƒแƒ แƒ”แƒ‘แƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒซแƒแƒšแƒ˜แƒแƒœ แƒ’แƒแƒ•แƒ แƒชแƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒชแƒแƒšแƒกแƒแƒฎแƒแƒ“ แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒก แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒ–แƒแƒ แƒ˜แƒก แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒš แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒแƒกแƒ—แƒแƒœ.

แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ” แƒ˜แƒ›แƒแƒจแƒ˜ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒก, แƒ แƒแƒ› แƒแƒกแƒ”แƒ—แƒ˜ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒแƒฆแƒ˜แƒแƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒฌแƒแƒ แƒแƒ“ แƒ“แƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒฉแƒแƒแƒขแƒแƒ แƒแƒ— แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜, แƒ แƒแƒ—แƒ แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒแƒ˜แƒชแƒ˜แƒšแƒแƒ— แƒชแƒ แƒฃ แƒ“แƒแƒ“แƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ˜แƒ“แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ. แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ แƒกแƒ™แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ–แƒฃแƒกแƒขแƒ˜แƒก แƒ’แƒแƒกแƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒšแƒแƒ“ แƒ“แƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒญแƒ แƒ”แƒšแƒแƒ“:

  • แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ•แƒ˜แƒชแƒ˜แƒ—, แƒ แƒแƒ› แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒš แƒžแƒ แƒแƒ”แƒฅแƒขแƒจแƒ˜ แƒ“แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒก แƒฌแƒ”แƒกแƒ˜ แƒ’แƒฃแƒœแƒ“แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ–แƒ”. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฃ แƒ’แƒฃแƒœแƒ“แƒ˜ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒก แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒš แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒแƒก แƒแƒœ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒแƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒจแƒ˜แƒช แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜ แƒ”แƒ แƒ—แƒ›แƒแƒœแƒ”แƒ—แƒก แƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒแƒ— แƒแƒ แƒช แƒ—แƒฃ แƒ˜แƒกแƒ” แƒกแƒแƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ แƒกแƒฃแƒ แƒแƒ—แƒ˜ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒชแƒ แƒฃ แƒ“แƒแƒ“แƒ”แƒ‘แƒ˜แƒ—แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.

  • แƒ›แƒ”แƒแƒ แƒ” แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ แƒแƒ แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒซแƒ˜แƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒจแƒ˜แƒช แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ แƒแƒจแƒ™แƒแƒ แƒแƒ“ แƒแƒ แƒ˜แƒก แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜. แƒแƒ› แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ˜แƒ— แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒ˜แƒงแƒแƒ—, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ› แƒคแƒแƒ˜แƒšแƒจแƒ˜.

  • แƒ“แƒ แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ แƒแƒ แƒ˜แƒก แƒ–แƒ”แƒ›แƒแƒ— แƒฉแƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒšแƒ˜ แƒแƒ แƒ˜ แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ˜แƒก แƒ”แƒ แƒ—แƒแƒ“ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ•แƒ˜แƒฌแƒ แƒ แƒฌแƒ แƒ”แƒ”แƒ‘แƒจแƒ˜ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒชแƒœแƒแƒ‘แƒ˜แƒš แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒแƒก slick Scala แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ™แƒ”แƒ แƒซแƒแƒ“, แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒแƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒšแƒ˜แƒขแƒ”แƒ แƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ. แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, SQL แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒ–แƒ” แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒชแƒ”แƒ›แƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜ $, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒœแƒแƒชแƒ•แƒšแƒ”แƒ‘แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒฉแƒแƒ›แƒแƒงแƒแƒšแƒ˜แƒ‘แƒ”แƒ‘แƒฃแƒš SQL แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒจแƒ˜. แƒ”แƒก แƒแƒ แƒ˜แƒก, แƒคแƒแƒฅแƒขแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“, แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒแƒœแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ แƒ˜ แƒแƒœแƒแƒšแƒแƒ’แƒ˜ Java-แƒจแƒ˜. แƒ›แƒแƒ’แƒ แƒแƒ›, แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— SQL แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒแƒ“ แƒแƒฌแƒงแƒแƒ‘แƒ, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ—แƒฃ แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒ, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜ #$, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒฉแƒแƒแƒœแƒแƒชแƒ•แƒšแƒ”แƒ‘แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒจแƒ˜ (แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒกแƒ˜แƒ›แƒ”แƒ‘แƒ˜แƒแƒœแƒ˜ แƒจแƒ”แƒ”แƒ แƒ—แƒ”แƒ‘แƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒแƒ“).

แƒ™แƒแƒ“แƒ˜แƒก แƒœแƒ˜แƒ›แƒฃแƒจแƒ˜:

// ะ’ ะพะฑั‰ะตะผ ัะปัƒั‡ะฐะต - ะทะฝะฐั‡ะตะฝะธั, ะบะพะฝั‚ั€ะพะปะธั€ัƒะตะผั‹ะต ะฟะพะปัŒะทะพะฒะฐั‚ะตะปะตะผ
val table = "coffees"
sql"select * from #$table where name = $name".as[Coffee].headOption

Checkmarx-แƒ›แƒ แƒฏแƒ”แƒ  แƒแƒ  แƒ˜แƒชแƒ˜แƒก แƒ แƒแƒ’แƒแƒ  แƒแƒฆแƒ›แƒแƒแƒฉแƒ˜แƒœแƒแƒก Splicing Literal Values-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒ’แƒแƒ›แƒแƒขแƒแƒ•แƒแƒก แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜ #$, แƒแƒกแƒ” แƒ แƒแƒ›, แƒจแƒ”แƒ•แƒ”แƒชแƒแƒ“แƒแƒ— แƒ•แƒแƒกแƒฌแƒแƒ•แƒšแƒแƒ— แƒžแƒแƒขแƒ”แƒœแƒชแƒ˜แƒฃแƒ แƒ˜ SQL แƒ˜แƒœแƒ”แƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒชแƒ˜แƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒ™แƒแƒ“แƒจแƒ˜ แƒกแƒฌแƒแƒ แƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ–แƒ’แƒแƒกแƒ›แƒ:

// ะะฐั…ะพะดะธะผ ะฒัะต ะธะผะฟะพั€ั‚ั‹
CxList imports = All.FindByType(typeof(Import));

// ะ˜ั‰ะตะผ ะฟะพ ะธะผะตะฝะธ, ะตัั‚ัŒ ะปะธ ะฒ ะธะผะฟะพั€ั‚ะฐั… slick
CxList slick = imports.FindByShortName("slick");

// ะะตะบะพั‚ะพั€ั‹ะน ั„ะปะฐะณ, ะพะฟั€ะตะดะตะปััŽั‰ะธะน, ั‡ั‚ะพ ะธะผะฟะพั€ั‚ ะฑะธะฑะปะธะพั‚ะตะบะธ ะฒ ะบะพะดะต ะฟั€ะธััƒั‚ัั‚ะฒัƒะตั‚
// ะ”ะปั ะฑะพะปะตะต ั‚ะพั‡ะฝะพะณะพ ะพะฟั€ะตะดะตะปะตะฝะธั - ะผะพะถะฝะพ ะฟั€ะธะผะตะฝะธั‚ัŒ ะฟะพะดั…ะพะด ั ะธะผะตะฝะตะผ ั„ะฐะนะปะฐ
bool not_empty_list = false;
foreach (CxList r in slick)
{
    // ะ•ัะปะธ ะฒัั‚ั€ะตั‚ะธะปะธ ะธะผะฟะพั€ั‚, ัั‡ะธั‚ะฐะตะผ, ั‡ั‚ะพ slick ะธัะฟะพะปัŒะทัƒะตั‚ัั
	not_empty_list = true;
}

if (not_empty_list) {
    // ะ˜ั‰ะตะผ ะฒั‹ะทะพะฒั‹, ะฒ ะบะพั‚ะพั€ั‹ะต ะฟะตั€ะตะดะฐะตั‚ัั SQL-ัั‚ั€ะพะบะฐ
	CxList sql = All.FindByShortName("sql");
	sql.Add(All.FindByShortName("sqlu"));
	
	// ะžะฟั€ะตะดะตะปัะตะผ ะดะฐะฝะฝั‹ะต, ะบะพั‚ะพั€ั‹ะต ะฟะพะฟะฐะดะฐัŽั‚ ะฒ ัั‚ะธ ะฒั‹ะทะพะฒั‹
	CxList data_sql = All.DataInfluencingOn(sql);
	
	// ะขะฐะบ ะบะฐะบ ัะธะฝั‚ะฐะบะธั ะฝะต ะฟะพะดะดะตั€ะถะธะฒะฐะตั‚ัั, ะผะพะถะฝะพ ะฟั€ะธะผะตะฝะธั‚ัŒ ะฟะพะดั…ะพะด ั ั€ะตะณัƒะปัั€ะฝั‹ะผะธ ะฒั‹ั€ะฐะถะตะฝะธัะผะธ
	// RegExp ัั‚ะพะธั‚ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ะบั€ะฐะนะฝะต ะพัั‚ะพั€ะพะถะฝะพ ะธ ะฝะต ะฟั€ะธะผะตะฝัั‚ัŒ ะตะณะพ ะฝะฐ ะฑะพะปัŒัˆะพะผ ะบะพะปะธั‡ะตัั‚ะฒะต ะดะฐะฝะฝั‹ั…, ั‚ะฐะบ ะบะฐะบ ัั‚ะพ ะผะพะถะตั‚ ัะธะปัŒะฝะพ ะฟะพะฒะปะธัั‚ัŒ ะฝะฐ ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ัŒ
	CxList find_possible_inj = data_sql.FindByRegex(@"#$", true, true, true);

    // ะ˜ะทะฑะฐะฒะปัะตะผัั ะพั‚ ะปะธัˆะฝะธั… ัั€ะฐะฑะฐั‚ั‹ะฒะฐะฝะธะน, ะตัะปะธ ะพะฝะธ ะตัั‚ัŒ ะธ ะฒั‹ะฒะพะดะธะผ ะฒ ั€ะตะทัƒะปัŒั‚ะฐั‚
	result = find_possible_inj.FindByType(typeof(BinaryExpr));
}

แฒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ: แƒ›แƒแƒซแƒ”แƒ‘แƒœแƒ”แƒ— แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒฆแƒ˜แƒ แƒฌแƒงแƒแƒ แƒแƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒจแƒ˜

แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜: แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒฆแƒ˜แƒ แƒฌแƒงแƒแƒ แƒแƒก แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒก (OSA แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒ), แƒ แƒแƒ—แƒ แƒแƒฆแƒ›แƒแƒแƒฉแƒ˜แƒœแƒแƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒฃแƒš แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒจแƒ˜. แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒแƒกแƒ”แƒ—แƒ˜ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒก แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒ›แƒ“แƒ” แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ. แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒฃแƒ แƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜, แƒ–แƒแƒ’แƒจแƒ˜ แƒ™แƒ˜ แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒ. แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, SAST แƒ“แƒ OSA แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒ˜แƒก แƒ™แƒแƒ›แƒ‘แƒ˜แƒœแƒแƒชแƒ˜แƒ แƒ“แƒแƒ’แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒแƒ— แƒ˜แƒ›แƒ˜แƒก แƒ“แƒแƒ“แƒ’แƒ”แƒœแƒแƒจแƒ˜, แƒ แƒแƒ› แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ˜แƒฌแƒ•แƒ”แƒ•แƒก แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒ”แƒฅแƒกแƒžแƒšแƒฃแƒแƒขแƒแƒชแƒ˜แƒแƒก, แƒแƒ  แƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒ“แƒจแƒ˜.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒ–แƒแƒ’แƒฏแƒ”แƒ , แƒ’แƒแƒœแƒกแƒแƒ™แƒฃแƒ—แƒ แƒ”แƒ‘แƒ˜แƒ— JavaScript-แƒ˜แƒก แƒ’แƒแƒœแƒฎแƒ˜แƒšแƒ•แƒ˜แƒกแƒแƒก, แƒ”แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒ  แƒ˜แƒงแƒแƒก แƒกแƒ แƒฃแƒšแƒ˜แƒแƒ“ แƒขแƒ แƒ˜แƒ•แƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ. แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜, แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ แƒแƒ แƒ แƒ˜แƒ“แƒ”แƒแƒšแƒฃแƒ แƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ˜แƒœแƒช แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ˜แƒก แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— lodash แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒจแƒ˜ template ะธ *set.

แƒžแƒแƒขแƒ”แƒœแƒชแƒ˜แƒฃแƒ แƒแƒ“ แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒ˜ JS แƒคแƒแƒ˜แƒšแƒจแƒ˜:

/**
 * Template example
 */

'use strict';
var _ = require("./node_modules/lodash.js");


// Use the "interpolate" delimiter to create a compiled template.
var compiled = _.template('hello <%= js %>!');
console.log(compiled({ 'js': 'lodash' }));
// => 'hello lodash!'

// Use the internal `print` function in "evaluate" delimiters.

var compiled = _.template('<% print("hello " + js); %>!');
console.log(compiled({ 'js': 'lodash' }));
// => 'hello lodash!'

แƒ“แƒ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  html-แƒจแƒ˜ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒแƒก:

<!DOCTYPE html>
<html>
<head>
    <title>Lodash Tutorial</title>
    <script src="./node_modules/lodash.js"></script>
    <script type="text/javascript">
  // Lodash chunking array
        nums = [1, 2, 3, 4, 5, 6, 7, 8, 9];

        let c1 = _.template('<% print("hello " + js); %>!');
        console.log(c1);

        let c2 = _.template('<% print("hello " + js); %>!');
        console.log(c2);
    </script>
</head>
<body></body>
</html>

แƒฉแƒ•แƒ”แƒœ แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒงแƒ•แƒ”แƒšแƒ แƒฉแƒ•แƒ”แƒœแƒก แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒš แƒ›แƒ”แƒ—แƒแƒ“แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฉแƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒšแƒ˜แƒ แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒจแƒ˜:

// ะ˜ั‰ะตะผ ะฒัะต ัั‚ั€ะพะบะธ: ะฒ ะบะพั‚ะพั€ั‹ั… ะฒัั‚ั€ะตั‡ะฐะตั‚ัั ัั‚ั€ะพะบะฐ lodash (ะฟั€ะตะดะฟะพะปะฐะณะฐะตะผ, ั‡ั‚ะพ ัั‚ะพ ะพะฑัŠัะฒะปะตะฝะธะต ะธะผะฟะพั€ั‚ะฐ ะฑะธะฑะปะธะพั‚ะตะบะธ
CxList lodash_strings = Find_String_Literal().FindByShortName("*lodash*");

// ะ˜ั‰ะตะผ ะฒัะต ะดะฐะฝะฝั‹ะต: ะบะพั‚ะพั€ั‹ะต ะฒะทะฐะธะผะพะดะตะนัั‚ะฒัƒัŽั‚ ั ัั‚ะธะผะธ ัั‚ั€ะพะบะฐะผะธ
CxList data_on_lodash = All.InfluencedBy(lodash_strings);


// ะ—ะฐะดะฐะตะผ ัะฟะธัะพะบ ัƒัะทะฒะธะผั‹ั… ะผะตั‚ะพะดะพะฒ
List<string> vulnerable_methods = new List<string> {"template", "*set"};

// ะ˜ั‰ะตะผ ะฒัะต ะฝะฐัˆะธ ัƒัะทะฒะธะผั‹ะต ะผะตั‚ะพะดั‹, ะบะพั‚ะพั€ั‹ะต ะฟะตั€ะตั‡ะธัะปะตะฝะฝั‹ ะฒ ัƒัะทะฒะธะผะพัั‚ัั… ะธ ะพั‚ั„ะธะปัŒั‚ั€ะพะฒั‹ะฒะฐะตะผ ะธั… ั‚ะพะปัŒะบะพ ั‚ะฐะผ, ะณะดะต ะพะฝะธ ะฒั‹ะทั‹ะฒะฐะปะธััŒ
CxList vulnerableMethods = All.FindByShortNames(vulnerable_methods).FindByType(typeof(MethodInvokeExpr));

//ะะฐั…ะพะดะธะผ ะฒัะต ะดะฐะฝะฝั‹ะต: ะบะพั‚ะพั€ั‹ะต ะฒะทะฐะธะผะพะดะตะนัั‚ะฒัƒัŽั‚ ั ะดะฐะฝะฝั‹ะผะธ ะผะตั‚ะพะดะฐะผะธ
CxList vulnFlow = All.InfluencedBy(vulnerableMethods);

// ะ•ัะปะธ ะตัั‚ัŒ ะฟะตั€ะตัะตั‡ะตะฝะธะต ะฟะพ ัั‚ะธะผ ะดะฐะฝะฝั‹ะผ - ะบะปะฐะดะตะผ ะฒ ั€ะตะทัƒะปัŒั‚ะฐั‚
result = vulnFlow * data_on_lodash;

// ะคะพั€ะผะธั€ัƒะตะผ ัะฟะธัะพะบ ะฟัƒั‚ะตะน ะฟะพ ะบะพั‚ะพั€ั‹ะผ ะผั‹ ัƒะถะต ะฟั€ะพัˆะปะธ, ั‡ั‚ะพะฑั‹ ั„ะธะปัŒั‚ั€ะพะฒะฐั‚ัŒ ะฒ ะดะฐะปัŒะฝะตะนัˆะตะผ ะดัƒะฑะปะธ
List<string> lodash_result_path = new List<string> {};

foreach(CxList lodash_result in result)
{
    // ะžั‡ะตั€ะตะดะฝะพะน ั€ะฐะท ะฟะพะปัƒั‡ะฐะตะผ ะฟัƒั‚ะธ ะบ ั„ะฐะนะปะฐะผ
	string file_name = lodash_result.GetFirstGraph().LinePragma.FileName;
	lodash_result_path.Add(file_name);
}

// ะ”ะฐะปัŒัˆะต ะธะดะตั‚ ั‡ะฐัั‚ัŒ ะพั‚ะฝะพััั‰ะฐััั ะบ html ั„ะฐะนะปะฐะผ, ั‚ะฐะบ ะบะฐะบ ะฒ ะฝะธั… ะผั‹ ะฝะต ะผะพะถะตะผ ะฟั€ะพัะปะตะดะธั‚ัŒ ะพั‚ะบัƒะดะฐ ะธะผะตะฝะฝะพ ะธะดะตั‚ ะฒั‹ะทะพะฒ
// ะคะพั€ะผะธั€ัƒะตะผ ะผะฐััะธะฒ ะฟัƒั‚ะตะน ั„ะฐะนะปะพะฒ, ั‡ั‚ะพะฑั‹ ะฑั‹ั‚ัŒ ัƒะฒะตั€ะตะฝะฝั‹ะผะธ, ั‡ั‚ะพ ัั€ะฐะฑะฐั‚ั‹ะฒะฐะฝะธั ัƒัะทะฒะธะผั‹ั… ะผะตั‚ะพะดะพะฒ ะฑั‹ะปะธ ะธะผะตะฝะฝะพ ะฒ ั‚ะตั… ั„ะฐะนะปะฐั…, ะฒ ะบะพั‚ะพั€ั‹ั… ะพะฑัŠัะฒะปะตะฝ lodash
List<string> lodash_path = new List<string> {};
foreach(CxList string_lodash in lodash_strings)
{
	string file_name = string_lodash.GetFirstGraph().LinePragma.FileName;
	lodash_path.Add(file_name);
}

// ะŸะตั€ะตะฑะธั€ะฐะตะผ ะฒัะต ัƒัะทะฒะธะผั‹ะต ะผะตั‚ะพะดั‹ ะธ ัƒะฑะตะถะดะฐะตะผัั, ั‡ั‚ะพ ะพะฝะธ ะฒั‹ะทะฒะฐะฝั‹ ะฒ ั‚ะตั… ะถะต ั„ะฐะนะปะฐั…, ั‡ั‚ะพ ะธ ะพะฑัŠัะฒะปะตะฝะธะต/ะฒะบะปัŽั‡ะตะฝะธะต lodash
foreach(CxList method in vulnerableMethods)
{
	string file_name_method = method.GetFirstGraph().LinePragma.FileName;
	if (lodash_path.Contains(file_name_method) == true && lodash_result_path.Contains(file_name_method) == false){
		result.Add(method);
	}
}

// ะฃะฑะธั€ะฐะตะผ ะฒัะต UknownReferences ะธ ะพัั‚ะฐะฒะปัะตะผ ัะฐะผั‹ะน "ะดะปะธะฝะฝั‹ะน" ะธะท ะฟัƒั‚ะตะน, ะตัะปะธ ั‚ะฐะบะธะต ะฒัั‚ั€ะตั‡ะฐัŽั‚ัั
result = result.ReduceFlow(CxList.ReduceFlowType.ReduceSmallFlow) - result.FindByType(typeof(UnknownReference));

แฒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ: แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒจแƒ˜ แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ”แƒ แƒ—แƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒซแƒ˜แƒ”แƒ‘แƒ

แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜: แƒแƒ แƒช แƒ˜แƒกแƒ” แƒ˜แƒจแƒ•แƒ˜แƒแƒ—แƒ˜แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก, แƒ’แƒแƒœแƒกแƒแƒ™แƒฃแƒ—แƒ แƒ”แƒ‘แƒ˜แƒ— แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜แƒก, แƒกแƒ”แƒ แƒ—แƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒแƒœ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒœ SSL-Pinning-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒšแƒแƒ“. แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ”แƒ‘แƒ˜แƒก แƒ—แƒ•แƒแƒšแƒกแƒแƒ–แƒ แƒ˜แƒกแƒ˜แƒ—, แƒแƒกแƒ”แƒ—แƒ˜ แƒœแƒ˜แƒ•แƒ—แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒ“แƒจแƒ˜ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒ. แƒจแƒ”แƒ•แƒ”แƒชแƒแƒ“แƒแƒ— แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒฌแƒ”แƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒ˜แƒซแƒ˜แƒ”แƒ‘แƒก แƒ›แƒกแƒ’แƒแƒ•แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒก แƒกแƒแƒชแƒแƒ•แƒจแƒ˜:

// ะะฐะนะดะตะผ ะฒัะต ัะตั€ั‚ะธั„ะธะบะฐั‚ั‹ ะฟะพ ะผะฐัะบะต ั„ะฐะนะปะฐ
CxList find_certs = All.FindByShortNames(new List<string> {"*.der", "*.cer", "*.pem", "*.key"}, false);

// ะŸั€ะพะฒะตั€ะธะผ, ะณะดะต ะฒ ะฟั€ะธะปะพะถะตะฝะธะธ ะพะฝะธ ะธัะฟะพะปัŒะทัƒัŽั‚ัั
CxList data_used_certs = All.DataInfluencedBy(find_certs);

// ะ˜ ะดะปั ะผะพะฑะธะปัŒะฝั‹ั… ะฟั€ะธะปะพะถะตะฝะธะน - ะผะพะถะตะผ ะฟะพะธัะบะฐั‚ัŒ ะผะตั‚ะพะดั‹, ะณะดะต ะฒั‹ะทั‹ะฒะฐะตั‚ัั ั‡ั‚ะตะฝะธะต ัะตั€ั‚ะธั„ะธะบะฐั‚ะพะฒ
// ะ”ะปั ะดั€ัƒะณะธั… ะฟะปะฐั‚ั„ะพั€ะผ ะธ ะฟั€ะธะปะพะถะตะฝะธะน ะผะพะณัƒั‚ ะฑั‹ั‚ัŒ ั€ะฐะทะปะธั‡ะฝั‹ะต ะผะตั‚ะพะดั‹
CxList methods = All.FindByMemberAccess("*.getAssets");

// ะŸะตั€ะตัะตั‡ะตะฝะธะต ะผะฝะพะถะตัั‚ะฒ ะดะฐัั‚ ะฝะฐะผ ั€ะตะทัƒะปัŒั‚ะฐั‚ ะฟะพ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธัŽ ะปะพะบะฐะปัŒะฝั‹ั… ัะตั€ั‚ะธั„ะธะบะฐั‚ะพะฒ ะฒ ะฟั€ะธะปะพะถะตะฝะธะธ
result = methods * data_used_certs;

แฒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ: แƒ’แƒแƒœแƒแƒชแƒฎแƒแƒ“แƒจแƒ˜ แƒ™แƒแƒ›แƒžแƒ แƒแƒ›แƒ”แƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒœแƒ˜แƒจแƒœแƒ”แƒ‘แƒ˜แƒก แƒžแƒแƒ•แƒœแƒ

แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜: แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ’แƒแƒขแƒ”แƒฎแƒ˜แƒšแƒ˜ แƒœแƒ˜แƒจแƒœแƒ”แƒ‘แƒ˜แƒก แƒแƒœ แƒกแƒฎแƒ•แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒฃแƒฅแƒ›แƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ™แƒแƒ“แƒจแƒ˜แƒ. แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒ›แƒแƒ—แƒ˜ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ แƒฌแƒงแƒแƒ แƒแƒก แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ— แƒแƒ  แƒแƒ แƒ˜แƒก แƒ™แƒแƒ แƒ’แƒ˜ แƒ˜แƒ“แƒ”แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ“แƒ”แƒ‘แƒ. CxQL แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒฌแƒงแƒแƒšแƒแƒ‘แƒ˜แƒ—, แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒœแƒ˜แƒ•แƒ—แƒ”แƒ‘แƒ˜แƒก แƒžแƒแƒ•แƒœแƒ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ:

// ะŸะพะปัƒั‡ะฐะตะผ ะฒัะต ัั‚ั€ะพะบะธ, ะบะพั‚ะพั€ั‹ะต ัะพะดะตั€ะถะฐั‚ัั ะฒ ะบะพะดะต
CxList strings = base.Find_Strings();

// ะ˜ั‰ะตะผ ัั€ะตะดะธ ะฒัะตั… ัั‚ั€ะพะบ ะฝัƒะถะฝะพะต ะฝะฐะผ ะทะฝะฐั‡ะตะฝะธะต. ะ’ ะฟั€ะธะผะตั€ะต ั‚ะพะบะตะฝ ะฒ ะฒะธะดะต ัั‚ั€ะพะบะธ "qwerty12345"
result = strings.FindByShortName("qwerty12345");

แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ

แƒ˜แƒ›แƒ”แƒ“แƒ˜ แƒ›แƒแƒฅแƒ•แƒก, แƒ แƒแƒ› แƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒ แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ›แƒแƒ—แƒ—แƒ•แƒ˜แƒก, แƒ•แƒ˜แƒœแƒช แƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒ’แƒแƒชแƒœแƒแƒ‘แƒแƒก Checkmarx-แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ—แƒแƒœ. แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ แƒ›แƒแƒ—, แƒ•แƒ˜แƒœแƒช แƒ“แƒ˜แƒ“แƒ˜ แƒฎแƒแƒœแƒ˜แƒ แƒฌแƒ”แƒ แƒ”แƒœ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ  แƒฌแƒ”แƒกแƒ”แƒ‘แƒก, แƒแƒ› แƒกแƒแƒฎแƒ”แƒšแƒ›แƒซแƒฆแƒ•แƒแƒœแƒ”แƒšแƒแƒจแƒ˜แƒช แƒ˜แƒžแƒแƒ•แƒแƒœ แƒ แƒแƒ˜แƒ›แƒ” แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ.

แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“, แƒแƒ›แƒŸแƒแƒ›แƒแƒ“ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒแƒ‘แƒ, แƒกแƒแƒ“แƒแƒช แƒแƒฎแƒแƒšแƒ˜ แƒ˜แƒ“แƒ”แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒแƒ“แƒ Checkmarx-แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก. แƒแƒ›แƒ˜แƒขแƒแƒ› แƒจแƒ”แƒ•แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒกแƒแƒชแƒแƒ•แƒ˜ Github-แƒ–แƒ”, แƒกแƒแƒ“แƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ›แƒแƒ•แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ‘แƒ— แƒฉแƒ•แƒ”แƒœแƒก แƒœแƒแƒ›แƒฃแƒจแƒ”แƒ•แƒ แƒ”แƒ‘แƒก, แƒ แƒแƒ—แƒ แƒงแƒ•แƒ”แƒšแƒแƒ›, แƒ•แƒ˜แƒœแƒช แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก CxQL-แƒก, แƒ˜แƒžแƒแƒ•แƒœแƒแƒก แƒ›แƒแƒกแƒจแƒ˜ แƒ แƒแƒ˜แƒ›แƒ” แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ แƒ’แƒแƒฃแƒ–แƒ˜แƒแƒ แƒแƒก แƒ—แƒแƒ•แƒ˜แƒกแƒ˜ แƒœแƒแƒ›แƒฃแƒจแƒ”แƒ•แƒแƒ แƒ˜ แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒแƒก. แƒกแƒแƒชแƒแƒ•แƒ˜ แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”แƒแƒ‘แƒก แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜แƒก แƒจแƒ”แƒ•แƒกแƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ›แƒ˜แƒกแƒแƒกแƒแƒšแƒ›แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ™แƒแƒœแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒแƒ แƒ”แƒ‘แƒ˜!

แƒ“แƒ˜แƒ“แƒ˜ แƒ›แƒแƒ“แƒšแƒแƒ‘แƒ!

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ