Przejdź do głównej zawartości

DeliveryServer - DynaMents - Pobranie ścieżki węzła/liścia

Ostatnio zmagałem się z problemem pobrania ścieżki węzła/liścia w języku DynaMents, który używany jest po stronie DeliveryServer'a.

W XSLT można tego dokonać stosując:

<xsl:value-of select="name()"/>

Po długich bojach, udało mi się to osiągnąć przy pomocy DynaMent'u attribute działającego w trybie read. W DynaMencie tym można podać atrybut value. W atrybucie tym można podać 3 różne wartości, są to:

  • value - pobierana jest wartość węzła/liścia,
  • path - pobierana jest ścieżka węzła/liścia,
  • name - pobierana jest nazwa węzła/liścia. 

Listing poniżej przedstawia kod, który wypisuje wszystkie ścieżki węzłów z globalnej zmiennej REQUEST wraz z wartościami znajdującymi się w węzłach. Linia 3 tego listingu odpowiada za wypisanie ścieżki węzła.

1. <rde-dm:attribute type="children" mode="for-each"
                     alias="reqAttr" source="request">
2.    <rde-dm:attribute attribute="context:reqAttr" value="path"/>: 
3.    <rde-dm:attribute mode="read" attribute="context:reqAttr" />
4. </rde-dm:attribute>

Artykuł udostępniany na licencji CC-BY-SA-3.0

Komentarze

Popularne posty z tego bloga

WordPress -> SQL Injection poprzez plugin Webdorado SpiderCalendar

W zeszłym roku sprawdziłem jakość kodu oraz poprawność przetwarzania danych wejściowych przez plugin „Form Maker” przygotowany przez wydawcę Webdorado. Tym razem postanowiłem sprawdzić czy autor poprawił jakoś kodu swoich produktów. Należy tutaj nadmienić, że poza wersjami darmowymi opartymi na licencji GNU/GPLv2 oferuje on również wersję płatne z dodatkowymi szablonami. Tym razem postaram się opisać wszelkie przeszkody, które musiałem pokonać aby n apisać działającego exploita. Zacząłem zabawę tak, że program był dla mnie black-boxem, ale niestety skończyło się na przejrzeniu kodu. Zapraszam do lektury. Poniżej można zobaczyć jeden z widoków częściowych kalendarza, który domyślnie jest wywoływany z JavaScriptu jako XHR, można jednak go z powodzeniem otworzyć w przeglądarce jako widok główny: http://localhost:8888/wp/wp-admin/admin-ajax.php?action=spiderbigcalendar_month&theme_id=13&calendar=1&select=month,list,week,day,&date=2015-02&many_sp_calend...

WordPress Form Maker 1.6.5 - Stored XSS

W ostatnim czasie bawiłem się wtyczką do WordPressa o nazwie Form Maker (v1.6.5). Postanowiłem przejrzeć kod tej wtyczki i sprawdzić jego jakość oraz poziom zabezpieczenia danych przychodzących od użytkowników. Jak się okazuje poziom zabezpieczeń tego dodatku pozostawia wiele do życzenia (zresztą poziom jakości kodu źródłowego również). Wygenerowałem przy użyciu panelu zarządzania FormMaker'a formularz z jednym polem typu "select: oraz przyciski "submit" i "reset". Następnie dodałem widget do prawej kolumny bloga, efekt jest następujący:   W zasadzie pole to nie jest zabezpieczone w żaden sposób przed doklejeniem do wartości skryptu JS. Wartości te wpadają do tabelki wp_formmaker_submits do kolumny element_value. Użytkownik zarządzający (domyślnie administrator) może przeglądać w panelu WP statystyki utworzone na podstawie przesłanych przez użytkowników danych, oto przykład ( http://localhost/wordpress/wp-admin/admin.php?page=Form_maker_Submits ): ...

Inkscape - Opisywanie tekstu na ścieżce

Chcąc stworzyć np. efektowny logotyp w formacie SVG w kształcie koła warto wiedzieć jak opisywać napisy na ścieżkach, gdyż może nam to być przydatne, a dobrze wykonane opisanie napisu na kole może być całkiem efektowne. Przyda się również eksport tekstu do ścieżki celem poprawnego wyświetlania napisu w formacie SVG, tak więc do dzieła. Pierwszym krokiem będzie stworzenie krzywej (czynimy to przy użyciu odpowiedniego narzędzia - jeśli nie wiesz o czym mowa - przeczytaj poprzednie rozdziały), oraz jakiegokolwiek napisu, który będziemy chcieli edytować. Narzędzie do opisywania tekstu na ścieżkach domyślnie działa w ten sposób, że rozpoczyna opisywanie tekstu od strony lewej ścieżki, która będzie będzie służyła do opisania. Całość należy dobrać proporcjonalnie tak, żeby tekst opisał się na całej ścieżce - no chyba, że chcemy inaczej. Kolejnym etapem naszej pracy będzie zaznaczenie całości projektu (tj. napisu oraz ścieżki) oraz wybranie menu Tekst -> Wstaw na ścieżkę . Na tym etapie pra...