aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/session.php
diff options
context:
space:
mode:
authorMeik Sievertsen <acydburn@phpbb.com>2006-09-28 15:04:59 +0000
committerMeik Sievertsen <acydburn@phpbb.com>2006-09-28 15:04:59 +0000
commit26befa094147b542e48e36867eb41eaf424225f7 (patch)
tree5131952196ff19744498bbbdc962635cecc94c4f /phpBB/includes/session.php
parent67accdb07263030c29eebba9edf944fd350879d1 (diff)
downloadforums-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.php39
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