September 24th, 2007Частична защита срещу SQL injection с .htaccess
Нещо много просто, но ефективно срещу SQL injection. За да може да ползвате кода, трябва да имате Apache сървър, включен mod_rewrite и естествено възможност за промяна на .htaccess. Намирате
Options +FollowSymlinks
RewriteEngine On
и на следващия ред слагате
RewriteCond %{QUERY_STRING} union [NC,OR]
RewriteCond %{QUERY_STRING} select [NC,OR]
RewriteCond %{QUERY_STRING} truncate [NC,OR]
RewriteCond %{QUERY_STRING} drop [NC,OR]
RewriteCond %{QUERY_STRING} update [NC]
RewriteRule .* %{REQUEST_URI}? [R,L]
По този начин избягвате възможността да ви направят SQL injection чрез GET.
N.B.!!! Внимателно прегледайте QUERY STRING във вашите URL да не съдържат някоя от думите: union, select, truncate, drop, update, защото ще блокирате и тях!!!
Тествано под Apache 1.3.XX, скоро ще тествам дали върви под двойката.
Приемам всякакви забележки, които могат да доведат до подобряване на кода.
- Избягване на duplicate content на начална страница Както може би знаете, или не знаете, www.site.com, www.site.com/index.php, site.com и site.com/index.php са 4 различни страници за търсачките, въпреки, че вие вероятно виждате една и съща страница. За да избегнете подобен проблем, трябва да имате Apache server и mod_rewrite модул включен. Някъде в .htaccess пишете: Options +FollowSymlinks -Indexes RewriteEngine On RewriteCond %{HTTP_HOST} ^washiqthost.com$ [NC] RewriteRule ^(.*)$ http://www.washiqthost.com/$1 [R=301,L] RewriteCond %{THE_REQUEST} /index\.php\
- Избягване на duplicate content във вътрешни страници Тук ще стане въпрос не как да избегнем duplicate content на вече съществуващи страници, а как да го избегнем, ако например сме купили стар домейн, който има индексирани страници, които при нас биха дали 404 error. Много уебмастери слагат код: ErrorDocument 403 index.php ErrorDocument 404 index.php което обаче създава проблема с duplicate content, тъй като редиректва всички ненамерени страници
- Създаване на Yahoo sitemap PHP script Макар и по-рядко ползвана, търсачката Yahoo не трябва да се пренебрегва. За разлика от Google sitemap, където създаваме xml файл, в този случай е прост текстов файл със списък на URL. (Този тип файл може да се ползва и за Гугъл, но те не го препоръчват). И така. отваряте текстов редактор, и записвате в него
- Домейн и поддомейн на различни хостинги Първата мисъл, която може да ви мине през ума е, че е невъзможно. Е, не е съвсем така. Само, че си има няколко изисквания, без които номерът няма да сработи: 1. Хостингът, на който ще се хостват подомейнът трябва да има статично IP. 2. Там, където се хоства домейнът, трябва да има някакъв вид управление на DNS. Започна
- Cloaking Cloaking най-просто казано е начин, по който се представя едно съдържание на потребителя и друго на търсачките. Води се black hat SEO т.е. търсачките не го обичат много и сайтът ви може да бъде наказан за използване на подобна техника. Все пак добрият оптимизатор трябва да разбира и от тъмната страна. Има много начини за
- Създаване на Google sitemap PHP script Възможно най-простия скрипт за създаване на Google sitemap. Разбира се, директно не може да го ползвате. Ще се наложи да смените потребителското име и паролата за MySQL-а, а ако хостинга ви е на godaddy, например, ще трябва да извършите това упражнение и за localhost. Промени се налагат и за URL, което тук е във вида
- phpBB с нова версия Няколко месеца след официалното пускане на тройката, phpBB пуснаха новата версия за двойката - 2.0.23. Ето и changelog-ът: [Fix] Correctly re-assign group moderator on user deletion (Bug #280) [Fix] Deleting a forum with multiple polls included (Bug #6740) [Fix] Fixed postgresql query for obtaining group moderator in groupcp.php (Bug #6550) [Fix] Selected field on first entry by default for
October 6th, 2007 at 1:03 am
Наистина полезно, благодаря
October 6th, 2007 at 1:11 am
// Можеш да ми слееш коментарите
Една добавка само с проверка за всеки случай:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} union [NC,OR]
RewriteCond %{QUERY_STRING} select [NC,OR]
RewriteCond %{QUERY_STRING} truncate [NC,OR]
RewriteCond %{QUERY_STRING} drop [NC,OR]
RewriteCond %{QUERY_STRING} update [NC]
RewriteRule .* %{REQUEST_URI}? [R,L]
</IfModule>