usingSystem.Diagnostics;publicclassController{}publicclassExampleController:Controller{publicvoidExample(stringname,stringvalue){Processproc=newProcess();proc.StartInfo.FileName="path/to/executable";proc.StartInfo.EnvironmentVariables.Add(name,value);// Noncompliant: name is a variableproc.Start();}}
Compliant Code Examples
usingSystem.Diagnostics;usingSystem.Text.RegularExpressions;publicclassController{}publicclassExampleController:Controller{publicvoidExample(stringvalue){Processproc=newProcess();proc.StartInfo.FileName="path/to/executable";stringpattern="^*$";Matchm=Regex.Match(value,pattern);if(m.Success){// Name "ENV_VAR" is not in the sensitive list, so value being dynamic is ok here.proc.StartInfo.EnvironmentVariables.Add("ENV_VAR",value);}proc.Start();}}
원활한 통합. Datadog Code Security를 경험해 보세요
Datadog Code Security
이 규칙을 사용해 Datadog Code Security로 코드를 분석하세요
규칙 사용 방법
1
2
rulesets:- csharp-security # Rules to enforce C# security.
리포지토리 루트에 위의 내용을 포함하는 static-analysis.datadog.yml을 만듭니다
무료 IDE 플러그인을 사용하거나 CI 파이프라인에 Code Security 검사를 추가합니다