- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
ID: csharp-security/no-hardcoded-tempfile
Language: C#
Severity: Warning
Category: Security
CWE: 377
Never create a temporary file with a hardcoded path. Hardcoded paths may have write permissions for all users, enabling multiple types of attacks (for example, another application can also modify the temporary file and its content and potentially write executable code).
Always make sure temporary files are non deterministic and created programmatically.
using System.Xml;
class MyClass {
public static void payloadDecode()
{
using (var streamWriter = new StreamWriter("%USERPROFILE%\AppData\Local\Temp\f"))
{
streamWriter.WriteLine("foobar");
}
}
}
using System.Xml;
class MyClass {
public static void payloadDecode()
{
using (var streamWriter = new StreamWriter("/var/tmp/f"))
{
streamWriter.WriteLine("foobar");
}
}
}
using System.Xml;
class MyClass {
public static void payloadDecode()
{
using (var streamWriter = new StreamWriter("/tmp/f"))
{
streamWriter.WriteLine("foobar");
}
}
}
class MyClass {
public static void payloadDecode()
{
// Create the temporary file stream by getting programmatically a temporary path and filename
var temporaryPath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
// make sure you can create the file with write access
using var temporaryFileStream = new FileStream(randomPath, FileMode.CreateNew, FileAccess.Write, FileShare.None, 4096, FileOptions.DeleteOnClose);
using (var streamWriter = new StreamWriter(temporaryFileStream))
{
streamWriter.WriteLine("foobar");
}
}
}