The measure will allow authorities in the city that is home to the UN Human Rights Council and the Red Cross to impose fines of up to 100,000 Swiss francs ($110,000) on anyone who demonstrates without prior permission and who does not abide by agreed conditions.
The measure was approved by nearly 55 percent of voters, with more than 90 percent of ballots counted.
The cantonal government-backed amendments also allow authorities to require changes to demonstration itineraries if they pose “disproportionate risks to people” and their property, a move that would give officials the power to ban gatherings in the city centre.
Violators could be denied permission for further demonstrations for up to five years.
The proposal has already been criticised by a UN human rights expert, who said such amendments to rules on demonstrations would “unduly restrict” the rights to free expression.
“The exercise of fundamental freedoms should not be subject to a previous authorisation by the authorities,” said Maina Kiai, the UN special rapporteur on the rights to freedom of peaceful assembly and of association.
Proponents say the move would prevent instances such as the violent anti-World Trade Organisation demonstrations in 2009, in which shop windows in the city centre were smashed and cars set alight.