【发布时间】:2021-11-24 15:54:30
【问题描述】:
我正在阅读:https://en.wikipedia.org/wiki/Time-of-check_to_time-of-use
他们证明这段代码有问题,我完全理解为什么会这样:
if (access("file", W_OK) != 0) {
exit(1);
}
// Attacker: symlink("/etc/passwd", "file");
fd = open("file", O_WRONLY);
// Actually writing over /etc/passwd
write(fd, buffer, sizeof(buffer));
但真正的问题是如何防范此类攻击?
【问题讨论】:
标签: c++ linux file unix race-condition