Bug #69574 [Com]: ldap timeouts not enforced
| From: | tanjh58 at hotmail dot com | Date: | Thu, 11 Aug 2022 18:10:10 +0000 |
| Subject: | Bug #69574 [Com]: ldap timeouts not enforced | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-242181@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=69574&edit=1
ID: 69574
Comment by: tanjh58 at hotmail dot com
Reported by: ryan dot brothers at gmail dot com
Summary: ldap timeouts not enforced
Status: Closed
Type: Bug
Package: LDAP related
Operating System: Linux
PHP Version: 5.6.8
Assigned To: mcmic
Block user comment: N
Private report: N
New Comment:
This doesn't work for ldaps protocol. Here is my code:
<?php
$ldap = ldap_connect('ldaps://127.0.0.1:636');
ldap_set_option($ldap, LDAP_OPT_NETWORK_TIMEOUT, 3);
ldap_set_option($ldap, LDAP_OPT_TIMELIMIT, 3);
ldap_set_option($ldap, LDAP_OPT_TIMEOUT, 3);
ldap_bind($ldap);
?>
This never timeout.
Previous Comments:
------------------------------------------------------------------------
[2015-09-10 10:00:43] mcmic@php.net
The fix for this bug has been committed.
Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
For Windows:
http://windows.php.net/snapshots/
Thank you for the report, and for helping us make PHP better.
I added support for LDAP_OPT_TIMEOUT, please check that it fixes your problem.
------------------------------------------------------------------------
[2015-09-09 15:24:21] mcmic@php.net
Ok, so the problem is:
LDAP_OPT_TIMELIMIT is only for searches, not bind operations
LDAP_OPT_NETWORK_TIMEOUT is for socket level timeout, in your test there is no such thing as the nc
is indeed listening on the socket.
What you need is LDAP_OPT_TIMEOUT from openldap, which is not available yet in PHP.
So Iâm gonna add this to php-ldap as it seems usefull.
------------------------------------------------------------------------
[2015-09-09 13:51:38] mcmic@php.net
Ok, got it, I had to do «nc -l -p 1234» instead of «nc -l 1234».
I can reproduce the bug.
------------------------------------------------------------------------
[2015-09-09 13:48:41] mcmic@php.net
I meant I replaced it by «$ldap = ldap_connect('localhost', 1234);», sorry.
------------------------------------------------------------------------
[2015-09-09 13:47:47] mcmic@php.net
I canât reproduce this, I tried your script, I got «PHP Warning: ldap_connect(): Could not
create session handle: Bad parameter to an ldap routine in /tmp/test.php on line 3»
So I replaced the call to ldap_connect by «$ldap = ldap_connect('127.0.0.1:1234');»
I launched «nc -l 1234» in a shell, in an other one the PHP script, I only got «PHP
Warning: ldap_bind(): Unable to bind to server: Can't contact LDAP server in /tmp/test.php on
line 8» immediatly, not even after 3 seconds.
Not sure how to test this otherwiseâ¦
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=69574
--
Edit this bug report at https://bugs.php.net/bug.php?id=69574&edit=1