Parasolx

Professional in Drupal web development, theme designing, consultation and training

Drupal

Segalanya mengenai Drupal

[Snippets] Drupal 7 base_path

02 Jan 2013 - 08:54 am

base_path()

Returns the base URL path (i.e., directory) of the Drupal installation.

base_path() adds a "/" to the beginning and end of the returned path if the path is not empty. At the very least, this will return "/".

$GLOBALS['base_url'] => http://example.com/drupal
base_path() => /drupal/
request_uri() => /drupal/documentation?page=1
request_path() => documentation
current_path() => node/26419

Kepentingan membuang semua fail .TXT pada pemasangan Drupal

25 Dec 2012 - 07:27 pm

Dalam website portal komuniti Drupal, saya pernah menulis satu tips atau cadangan agar setiap pemasangan Drupal dibuang semua fail .TXT yang ada pada pada direktori "root". Boleh rujuk artikel tersebut di laman tersebut bertajuk "Buang semua fail TXT". Ada sesetengah pembangun beranggapan langkah ini sebenarnya tidak banyak membantu penggodam untuk menceroboh Drupal. Mereka masih tertakluk untuk melakukan banyak kerja untuk mencari ruang bagaimana menembusi sistem pertahanan Drupal.

Baiklah, saya tunjukkan salah satu contoh: http://portalbanjir.mkn.gov.my/

Laman portal banjir di bawah seliaan pihak kerajaan ini menggunakan Drupal 6. Bagaimana mengenalinya? Mudah sahaja. Lihat kepada "source code" untuk laman hadapan. Drupal mempunyai beberapa penjenamaan namanya. Salah satu adalah menggunakan JQuery dengan menetapkan variable behaviour iaitu jQuery.extend(Drupal.settings.

Kemudian saya akses terus salah satu fail .txt dan yang menjadi target utama adalah fail "CHANGELOG.txt".

Apa yang dapat saya simpulkan, laman portal ini menggunakan versi Drupal 6.22. Jadi apa masalahnya? Baiklah. Sehingga saat ini (tarikh 25 Disember 2012), pihak komuniti Drupal.org telah melepaskan lima (5) versi terkini untuk dikemas kini iaitu Drupal 6.27. Jadi kita muat turun dan lihat kandungan fail changelog.txt untuk versi yang terkini.

Terdapat dua versi untuk isu sekuriti iaitu 6.23 dan 6.27 yang masing-masing melibatkan masalah Cross site scripting dan multiple vulnerabilities. Apa kelemahan yang terdapat pada kedua-dua lepasan versi ini boleh disemak pada pautan berikut: SA-CORE-2012-001 - Drupal Core - Multiple vulnerabilities dan SA-CORE-2012-004 - Drupal core - Multiple vulnerabilities.

# Jadi di mana kelemahan dan silapnya?

Jom kita lihat. Drupal 6.24 dilepaskan pada 2 Februari 2012. Pada hari ini 25 Disember 2012, tempohnya hampir 10 bulan dengan mempunyai dua lubang keselamatan yang boleh ditembusi dengan mudah. Bayangkan dalam tempoh ini, apa yang pihak pengodam boleh lakukan? Mengapa pihak berwajib sampai 10 bulan tiada langsung tindakan untuk mengemas kini Drupal ke versi terkini? Memang ramai yang mengetahui Drupal "kebal" dengan tahap keselamatan yang dikatakan sangat tinggi tetapi jika lubang dan arah ditunjukkan dengan jelas, bilik kebal yang menyimpan wang di bank pun boleh dicuri tanpa dikesan.

Secara logiknya, seandainya fail-fail .txt ini dibuang, bukan bermaksud lubang-lubang telah ditampal kerana Drupal masih kekal pada versi yang lapuk. Tetapi kita sekadar menutup ruang untuk pihak tidak bertanggung jawab meneroka apakah spesifikasi Drupal yang digunakan. Ini kerana tiada jalan lain yang boleh digunakan untuk mengetahui versi Drupal melainkan fail-fail ini.

** Entri ini ditulis untuk tujuan perhatian kepada semua pengguna Drupal bukan menunjukkan kelemahan sesuatu laman.

Perlu atau tidak Custom module?

10 Dec 2012 - 08:47 am

Sering kali bertemu dengan pengguna Drupal, saya sering dikejutkan dengan permintaan untuk membina "custom module" bagi melaksanakan sesuatu tugasan pada laman web mereka. Terutama bagi yang menggunakan Drupal sebagai platform untuk pembinaan sistem berasaskan web.

Drupal sememangnya menyokong pembinaan sistem yang kompleks dan disulami dengan fungsi-fungsi yang sememangnya diluar jangkaan. Namun pembangunan yang bijak seharusnya menggunakan apa yang sedia ada di depan mata.

Komuniti Drupal menyediakan hampir 20 ribu modul tambahan dari pelbagai versi Drupal. Jadi kenapa membazir masa dan tenaga membina modul secara khas sedangkan pilihan ada di depan kita.

# Jadi waktu bila perlu custom module?

Sekiranya fungsi dan hasil yang kita inginkan tidak disediakan oleh mana-mana modul setelah habis menyelongkar semua salah silah halaman modul di https://www.drupal.org.

Fungsi yang diperlukan terlalu mudah dan ringkas. Tetapi tidak bercadang untuk menambah upaya fungsi dalam masa terdekat.

Security Update: Contrib 2012 152-158

11 Oct 2012 - 09:23 am

Feeds - Access bypass

The feeds module enables you to import or aggregate data as nodes, users, taxonomy terms or simple database records. The module doesn't sufficiently check permissions when creating nodes on
behalf of a user. This vulnerability is mitigated by the fact that an attacker must have control over the source feed, and the Feeds importer must have a field from that feed mapped to the node's author.

Note: the Feeds module doesn't have a stable release and therefore a Security Advisory would not normally be issued, per the Drupal Security Team policy. However, this issue affects the Mailhandler module, which does have a stable release. For modules with dependencies, maintainers are encouraged to create stable releases only for those modules dependent on stable releases.

Mandrill - Information Disclosure

This module enables you to send emails using an external gateway and by default logs the contents of the messages. An attacker who gains access to the Mandrill dashboard can trigger password reset emails from the Drupal site, get the reset links from the Mandrill logs, and take over an account.

Basic webmail - Multiple vulnerabilities

This module allows site users to read and write e-mail through an IMAP mail server.

There are four issues being addressed by this security advisory:

  • The module doesn't sufficiently sanitize data when setting page title.
  • The module may store Drupal login IDs and passwords in plain text in the data column of the users table.
  • The module doesn't sufficiently sanitize data displayed from email messages.
  • The module allows users who have the 'access basic_webmail' permission to view the e-mail addressof other site users.

ShareThis - Cross Site Scripting (XSS)

This module enables integration with the ShareThis [3] web service to allow social bookmarking amongst your users.

The module doesn't sufficiently filter JavaScript settings before outputting them.

This vulnerability is mitigated by the fact that an attacker must have a role with the permission "administer sharethis".

Security Update: Contrib 2012 149-150

04 Oct 2012 - 11:26 am

Hostip - Cross Site Scripting (XSS)

Hostip enables you to query the http://www.hostip.info/ [3] API to get the country / state information based on the user's IP address or a specific IP passed to it. The module fails to sanitize data retrieved from an untrusted third party source, thereby exposing an arbitrary script injection vulnerability (XSS).

This vulnerability is mitigated by the fact that an attacker must have either gained access to that third party source or use techniques such as DNS spoofing in order to inject malicious data.

Twitter Pull - Cross Site Scripting (XSS)

Twitter Pull allows you to retrieve tweets from Twitter based on a user or search and display them on your site. It also includes integration with the boxes module to allow for simple placement of twitter feeds on various pages.

The module doesn't sufficiently filter the data coming from Twitter which could result in script injection and XSS attacks.

This vulnerability is mitigated by the fact that Twitter is a generally trusted source and is unlikely to serve malicious content.

Commerce Extra Panes - Cross Site Request Forgery

This module, an add-on for Drupal Commerce, allows site builders to place one or more nodes in one of the checkout phases of an order.

The module doesn't sufficiently confirm the intent of a site builder when taking certain administrative operations. This could allow an attacker to trick an administrator into unknowingly enabling/disabled a Commerce extra panes pane.

Pages