This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Warn more about disclosing the hash seed, from Scott A. Crosby.
[perl5.git] / pod / perlrun.pod
index 7f32e94..81d4749 100644 (file)
@@ -1139,16 +1139,24 @@ the pseudorandom seed supplied by the operating system and libraries.
 This means that each different run of Perl will have a different
 ordering of the results of keys(), values(), and each().
 
-See L<perlsec/"Algorithmic Complexity Attacks"> for more information,
-and also L</PERL_HASH_SEED_DEBUG>.
+B<Please note that the hash seed is sensitive information>. Hashes are
+randomized to protect against local and remote attacks against Perl
+code. By manually setting a seed this protection may be partially or
+completely lost.
+
+See L<perlsec/"Algorithmic Complexity Attacks"> and
+L</PERL_HASH_SEED_DEBUG> for more information.
 
 =item PERL_HASH_SEED_DEBUG
 
 (Since Perl 5.8.1.)  Set to one to display (to STDERR) the value of
-the hash seed at the beginning of execution.  B<Note that the hash
-seed is sensitive information>: by knowing it one can craft a
-denial-of-service attack against Perl code, even remotely, see
-L<perlsec/"Algorithmic Complexity Attacks"> for more information.
+the hash seed at the beginning of execution.  This, combined with
+L</PERL_HASH_SEED> is intended to aid in debugging nondeterministic
+behavior caused by hash randomization.
+
+B<Note that the hash seed is sensitive information>: by knowing it one
+can craft a denial-of-service attack against Perl code, even remotely,
+see L<perlsec/"Algorithmic Complexity Attacks"> for more information.
 B<Do not disclose the hash seed> to people who don't need to know it.
 See also hash_seed() of L<Hash::Util>.