Getting a safe path for a temporary file

Cym13 cpicard at openmailbox.org
Thu Oct 26 01:48:03 UTC 2017


On Sunday, 18 January 2015 at 00:51:37 UTC, Laeeth Isharc wrote:
> On Saturday, 17 January 2015 at 16:55:42 UTC, Marc Schütz wrote:
>> On Saturday, 17 January 2015 at 14:37:00 UTC, Laeeth Isharc 
>> wrote:
>>> On Saturday, 17 January 2015 at 13:47:39 UTC, Marc Schütz 
>>> wrote:
>>>> [...]
>>>
>>> I agree that it would be useful.
>>>
>>> This is what I used, although there may be a better option:
>>>
>>> http://dlang.org/phobos/std_uuid.html
>>
>> Nice idea, but it still allows for intentional collision 
>> attacks :-(
>>
>> The only really safe solution is one that generates (probably) 
>> unique names, then opens the file with O_EXCL|O_CREAT (or 
>> whatever other means the OS provides), and if it fails, 
>> retries with a different name. `std.stdio.tmpfile()` already 
>> does that (it uses `tmpfile(3)` under the hood), but doesn't 
>> allow access to the name.
>
> I don't follow why a collision attack is applicable in this 
> case.
>  Your stage 1 of generating unique names: how is this different 
> from using a random uuid?

UUIDs are defined to be unique, not unpredictable. UUID that use 
random number generation (UUID4) should use a cryptographically 
secure random number generator but are not required to. Therefore 
it shouldn't be blindly trusted against someone actively trying 
to get a collision.


More information about the Digitalmars-d-learn mailing list