31 Temmuz 2010 Cumartesi

Iframe virüsü ve temizlenmesi

Hayatımızın bir parçası olan bilinçsiz kullanıcılar yüzünden illaki hepimizin başına böylesi acı dolu olaylar geliyor. Ama ne yapalım birgün bizde o bilinçsiz kullanıcı olacağız...

Windows için Find And Replace programı oldukça mükkemmel ve iş görüzü.

Linux içinse araştırmalarım sonucu bulduğum şu komutlar çok güzel.




Burda virüs bulaşan dosyaları buluyoruz.

find ./ -type f -name \*.* -exec grep -El "" {} \;

Burda da temizliyoruz.

find ./ -type f -name \*.* -exec sed -r 's@@\t@g' -i {} \;


js bulan

find ./mezunarama/ -type f -name \*.* -exec grep -El "document.write\(.+type=\"text/javascript\" src=\"http:\/\/.+:8080\/.+>.+" {} \;


Temizleyen


find ./mezunarama/ -type f -name \*.js -exec sed -r 's@document.write\(.+type=\"text/javascript\" src=\"http:\/\/.+:8080\/.+>.+@\t@g' -i {} \;


Son olarak şurayı okuyun.
http://www.fatihhayrioglu.com/iframe-virusu-ve-saldirgan-site-damgalamasindan-kurtulmanin-yolu/

Şimdiden kolay gelsin.

30 Temmuz 2010 Cuma

Server 2008 Standart Edition r2 uzerinde web platform ile php_mssql kurulum hatasi

PHP Warning: PHP Startup: Unable to load dynamic library 'C:\Program Files (x86)\PHP\ext\php_mssql.dll' - The specified module could not be found.

Bu hata hayatınızı karartabilir.
Sorulara öneriler şöyle;

1-Php.ini dosyasında extension ların yolunun kontrolu
2-Sql server client kurulup kurulmadığı
3-Bunu kullanma performansı iyi değil sqlserv kullan
4-Path leri kontrol edin

Peki sorun gördüğümüzde nasıl çözmeliyiz ?

1-Öncelikle windows değişkenlerini kontrol edip PHP kurulum ayarlarının doğru yere bakıp bakmadığını tespit edin. (PHPRC,Path,PHP_PEAR_PHP_BIN vs..)
2-Sonra konsoldan PHP nin kurulu olduğu dizine gidip "php -v" yazın. Burda çıkan hatalar gerçekten sorununuz olduğunu gösteriyor demektir. İşte bu noktada MSVCR71.DLL dll'i hata veriyorsa php_mssql in çalışmama sebebi budur.
Netten indirmeden elinizin altından bir yerden bu dosyayı bulup PHP nin kurulu olduğu dizine atın. Gerekirse sunucuyu yeniden başlatın. Veee mutlu son....
Çıkan diğer hatalarda aynı şekilde DLL eksikliğinden kaynaklanıyor onları bulup PHP dizinine atarsanız sorun kalmaz.

2 Temmuz 2010 Cuma

Projeleri svn ile tek yerden yönetmek

Projelerde olmazsa olmaz olan svn kullanımını iyi yönetebilmek için şöyle bir yol izlenebilir.

Öncelikle ;
Pecl kütüphanesinden svn paketini kurun. Server da bir yere svnyonetimi seklinde bir klasor atip içine index.php dosyası atın. Dosyanın içinde aşağıdaki kodlar olsun.




svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_USERNAME, 'user');
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_PASSWORD, 'passs');
svn_auth_set_parameter(PHP_SVN_AUTH_PARAM_IGNORE_SSL_VERIFY_ERRORS, true);
$u = svn_update('/home/user/app/');

echo $u;

--
Bunları öğrenmem zaman aldı ama eğer şöyle bir hata alıyorsanız yukardaki kodlar hayatınızı kurtaracaktır.

Error validating server certificate for 'https://site.com:8443':
- The certificate is not issued by a trusted authority. Use the
fingerprint to validate the certificate manually!
Certificate information:
- Hostname: site.com
- Valid: from Jun 28 15:03:03 2010 GMT until Jun 28 15:03:03 2011 GMT
- Issuer: Istanbul, Istanbul, TR, site, site
- Fingerprint:
(R)eject, accept (t)emporarily or accept (p)ermanently?

Hiç bir sertifika ıvır zıvırla uğraşmadan direk kullanabilirsiniz. Ayrıca başka kullanıcılara ait, svn içeren projelerede burdaki dosya (index.php) ile ulaşabilirsiniz. Yalnız svn kullanıcı adı ve şifresini bilmeniz gerekiyor.

Son olarak svnyonetimi isimli klasöre .htaccess ile şifre ve IP koruması koyarsanız daha güvenli olur.

Tecrübelerim sonucunda cPanel veya benzeri sistemler kurulu makinelerde system,shell_exec ve benzeri komutlar ile bu işi yapmanın biraz sıkıntılı olduğunu düşünüyorum :)

Web projesini webe çıkartıp yolunu ayarlamak public_html -> public

MVC çatısı altında geliştirdiğiniz projeleri webe attığınızda aynı haliyle klasör yapısını hiç bozmadan kullanmak için ;

Windows üzerinde IIS de path i elle veriyorsunuz.

Linux üzerinde ise sırasıyla apache config ayarları ile oynamadan aşağıdaki komutları çalıştırmanız yeterli;

Projemizin /home/user/application altında olduğunu varsayıyorum. application altında public klasörü var.



rm -rf /home/user/public_html
ln -s /home/user/application/public public_html


public_html'i klasör olmaktan çkartıp kısayol haline getirdik. Hiçbir ayarı değiştirmeden bu işten sıyrılmış olduk...