Miasta chroniła rzeka (Kazimierz), a także wieże i mury obronne (Kraków i Kazimierz).
Według ilustracji przedstawiającej Kraków nawet podgrodzie – zazwyczaj pozbawione zabezpieczeń – posiadało niskie mury. W przypadku Kazimierza dodatkową ochroną była Wisła, która w razie zagrożenia miasta stawała się jego fosą, utrudniając szturm na mury (atakujący musieli wykorzystywać mosty, znajdujące się pod ostrzałem obrońców na bramach, lub budować własne przejścia; w przeciwieństwie do sztucznych fos, próby zasypania rzeki pod ostrzałem obrońców były po prostu niepraktycznym sposobem jej przebycia).