diff options
| author | Meik Sievertsen <acydburn@phpbb.com> | 2006-09-28 15:04:59 +0000 |
|---|---|---|
| committer | Meik Sievertsen <acydburn@phpbb.com> | 2006-09-28 15:04:59 +0000 |
| commit | 26befa094147b542e48e36867eb41eaf424225f7 (patch) | |
| tree | 5131952196ff19744498bbbdc962635cecc94c4f /phpBB/includes/session.php | |
| parent | 67accdb07263030c29eebba9edf944fd350879d1 (diff) | |
| download | forums-26befa094147b542e48e36867eb41eaf424225f7.tar forums-26befa094147b542e48e36867eb41eaf424225f7.tar.gz forums-26befa094147b542e48e36867eb41eaf424225f7.tar.bz2 forums-26befa094147b542e48e36867eb41eaf424225f7.tar.xz forums-26befa094147b542e48e36867eb41eaf424225f7.zip | |
- added confirmation to removing bbcodes
- added optional MX and DNSBL checks
- added backtrace (triggering sql error) on error within sql_in_set as well as making sure it is handling an array
- let users having f_list access to a forum actually see the forum without a topic list and not displaying an error message - this allows for giving people access to subforums but not the parent forum without the need to add the (sub-)forum to the index.
- some additional bugfixes
git-svn-id: file:///svn/phpbb/trunk@6414 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/session.php')
| -rw-r--r-- | phpBB/includes/session.php | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/phpBB/includes/session.php b/phpBB/includes/session.php index 8cef9c3806..b61643dea5 100644 --- a/phpBB/includes/session.php +++ b/phpBB/includes/session.php @@ -847,6 +847,45 @@ class session } /** + * Check if ip is blacklisted + * This should be called only where absolutly necessary + * + * Only IPv4 (rbldns does not support AAAA records/IPv6 lookups) + * + * @author satmd (from the php manual) + * @return false if ip is not blacklisted, else an array([checked server], [lookup]) + */ + function check_dnsbl($ip = false) + { + if ($ip === false) + { + $ip = $this->ip; + } + + $dnsbl_check = array( + 'bl.spamcop.net' => 'http://spamcop.net/bl.shtml?', + 'list.dsbl.org' => 'http://dsbl.org/listing?', + 'sbl-xbl.spamhaus.org' => 'http://www.spamhaus.org/query/bl?ip=', + ); + + if ($ip) + { + $quads = explode('.', $ip); + $reverse_ip = $quads[3] . '.' . $quads[2] . '.' . $quads[1] . '.' . $quads[0]; + + foreach ($dnsbl_check as $dnsbl => $lookup) + { + if (phpbb_checkdnsrr($reverse_ip . '.' . $dnsbl . '.', 'A') === true) + { + return array($dnsbl, $lookup . $ip); + } + } + } + + return false; + } + + /** * Set/Update a persistent login key * * This method creates or updates a persistent session key. When a user makes |
