Mart 2008′de rapor ettiğim bu güvenlik açığı Ekim 2009′da giderildi.
SA-CONTRIB-2009-081 – Abuse – Cross Site Scripting
The Abuse module enables users to flag nodes and comments as offensive, bringing them to the attention of the site maintainer for review. The module suffers from a Cross Site Scripting (Cross Site Scripting) vulnerability. Such an attack may lead to a malicious user gaining full administrative access.
O zaman gönderdiğim e-posta:
Abuse module displays flagged nodes in a moderation queue without applying filters (without calling node_view) on them.
Module version: abuse 5.x-1.x-dev at (http://drupal.org/node/123349)
Steps to reproduce:
- Install abuse.module.
- Enable flagging of any content type at “admin/settings/abuse” page.
- Flag a node by using “Flag as offensive” link on “node/#nid” page.
- Go to “admin/content/abuse” page. Under any tab one can see unfiltered node contents.
Endersys Ltd, LPI (Linux Proffesional Institute) ile yaptığı görüşmeler neticesinde LPI Türkiye temsilcisi olmaya hak kazandı.
“JSR-000330 Dependency Injection for Java” ile birlikte Guice Java EE standardı oldu. Hemen Maven2 bağımlılıklar listeme ekliyorum.

Amerikada yakın zamanda Jr. Software Architect olarak işe başlayan birisinin ilk izlenimini anlattığı yazısını paylaşıyorum.
Yazarın Hakkımda sayfasında yazdığı şu cümlelere kısmen katılıyorum:
“Eskiden programlama dilleri benim amacımdı. Özellikle C ve C++ dili konusunda uzmanlaşmak istiyordum. Şu an biliyorum ki, tüm programlama dillerinin canı cehenneme. Diller sadece bir araç. Önemli olan programladığımız alet her ne ise onun inceliklerini anlamak, o makineyi analiz etmek, ve çalışması için gerekli olan koşulları yerine getirmektir.”
http://www.hasanozgan.com/2009/08/yazilim-gelistirme-surecleri-1/
MyFaces 1.2.7 sürümünden önce bir hata (MYFACES-1761) nedeniyle Dependency Injection (DI) kullanılamıyordu. Bu hata artık çözüldü.
4 Temmuz Cumartesi günü IBM Türk binasında gerçekleştirilecek olan CETURK Java Teknolojileri Etkinliği‘ne gidiyorum
Bugün bunu yaptım ama şunu yapmayı unuttum tarzı yazılarla dolu olan blogküre gerçekten blog yazarlığından habersiz görünüyor.
Sun Microsystems 25 Haziran günü İstanbul’da Java Day 2009 organizasyonunu düzenledi. Blog yazarlarımız bu etkinliği günler öncesinden haber verdiler fakat kendileri etkinliğe katılmayı unuttular. Yukarıda alıntıladığım, Bildirgeç’te yayımlanan şu yazının giriş cümlesinin ne kadar doğru olduğunu bir kere daha anımsadım.
Blogküre‘de Java Day aramasında çıkan sonuçlardan sadece ikisi etkinlik sonrasında yazılmış. Onlar da blog değil portal tarzı sitelerden geliyor. Bir tanesi kaliteli içeriğe sahip. 3 tane röportaj yayımlamışlar; [1], [2], [3].
Bir tane de FriendFeed canlı yayını bulabildim.
Piwik Analytics eklentisi WordPress ile Piwik kurulumları arasındaki iletişimi kolaylaştırıyor.
Şimdilik bu eklenti sadece Piwik’in ihtiyaç duyduğu kodu WordPress sayfalarına yerleştirmeyi sağlıyor.
Piwik’in Widgetize eklentisinin sağladığı widgetları WordPress yönetim panelinden görebilmenin yararlı olacağını düşündüm. Bu düşünceyle aşağıdaki yamayı hazırladım.
Index: piwikanalytics.php
===================================================================
--- piwikanalytics.php (revision 112809)
+++ piwikanalytics.php (working copy)
@@ -267,6 +267,31 @@
} // class PA_Filter
} // endif
+/** Dashboard Stuff: WP >= 2.5 */
+
+function piwikanalytics_register_dashboard_widget() {
+ if (!current_user_can('manage_options'))
+ return;
+ wp_register_sidebar_widget('dashboard_piwikanalytics', __('Stats'), 'piwikanalytics_dashboard_widget_content', array(
+ 'width' => 'full'
+ ));
+}
+
+function piwikanalytics_add_dashboard_widget($widgets) {
+ global $wp_registered_widgets;
+ if (!isset($wp_registered_widgets['dashboard_piwikanalytics']) || !current_user_can('manage_options'))
+ return $widgets;
+
+ array_splice($widgets, 2, 0, 'dashboard_piwikanalytics');
+ return $widgets;
+}
+
+function piwikanalytics_dashboard_widget_content() { ?>
+<!-- Put embedded iframe code here. -->
+< ?php
+ exit;
+}
+
if (function_exists("get_option")) {
if ($wp_siteid_takes_precedence) {
$options = get_option('PiwikAnalyticsPP');
@@ -276,7 +301,7 @@
$gaf = new PA_Filter();
-$options = get_option('PiwikAnalyticsPP',"");
+$options = get_option('PiwikAnalyticsPP', "");
if ($options == "") {
$options['phpurl'] = '/piwik/piwik.php';
@@ -284,14 +309,16 @@
$options['dltracking'] = true;
$options['dlextensions'] = '7z|aac|avi|csv|doc|exe|flv|gif|gz|jpe?g|js|mp(3|4|e?g)|mov|pdf|phps|png|ppt|rar|sit|tar|torrent|txt|wma|wmv|xls|xml|zip';
//$options['position'] = 'footer';
- update_option('PiwikAnalyticsPP',$options);
+ update_option('PiwikAnalyticsPP', $options);
}
// adds the menu item to the admin interface
add_action('admin_menu', array('PA_Admin','add_config_page'));
-
// adds the footer so the javascript is loaded
add_action('wp_footer', array('PA_Filter','spool_analytics'));
-?>
+add_action('wp_dashboard_setup', 'piwikanalytics_register_dashboard_widget');
+add_filter('wp_dashboard_widgets', 'piwikanalytics_add_dashboard_widget');
+
+?>
\ No newline at end of file
