Injecting unsanitized data into responses can lead to several security vulnerabilities, including Cross-Site Scripting (XSS) attacks. XSS attacks occur when a malicious script is injected into a trusted website, which can compromise the data integrity or steal sensitive information.
To comply with this rule, always sanitize or validate data before including it in a response. PHP provides several built-in functions such as filter_var(), htmlspecialchars(), and strip_tags() that can be used for sanitizing data.
Non-Compliant Code Examples
<?phpclassUserControllerextendsController{publicfunctiontest0($data){returnresponse('Data is '.$data,200)->header('Content-Type','text/html');}publicfunctiontest1($data){returnresponse("Data is {$data}")->withHeaders(['Content-Type'=>"text/html",]);}}Route::get('/endpoint/{data}',function($data){returnresponse("Data is {$data}")->cookie($cookie)->withHeaders(['Content-Type'=>'text/html',]);});
Compliant Code Examples
<?phpclassUserControllerextendsController{publicfunctiontest0($data){$content=sanitize($data);returnresponse('Data is '.$content,200)->header('Content-Type','text/html');}publicfunctiontest1($data){$content=validate($data);returnresponse("Data is {$content}")->withHeaders(['Content-Type'=>"text/html",]);}}Route::get('/endpoint/{data}',function($data){$var=sanitize($data);returnresponse("Data is {$var}")->cookie($cookie)->withHeaders(['Content-Type'=>'text/html',]);});
원활한 통합. Datadog Code Security를 경험해 보세요
Datadog Code Security
이 규칙을 사용해 Datadog Code Security로 코드를 분석하세요
규칙 사용 방법
1
2
rulesets:- php-security # Rules to enforce PHP security.
리포지토리 루트에 위의 내용을 포함하는 static-analysis.datadog.yml을 만듭니다
무료 IDE 플러그인을 사용하거나 CI 파이프라인에 Code Security 검사를 추가합니다