Se però si parla dello STRARIPAMENTO DI UN FIUME:
1) se si usa come SOGGETTO l'ACQUA si usa ESSERE perché, come nell'esempio sopra, l'acqua è il liquido che è fuoriuscito:
"le troppe piogge hanno fatto gonfiare il fiume e l'ACQUA È STRARIPATA";
2) se si usa come SOGGETTO il FIUME, puoi usare AVERE o ESSERE, non c'è differenza, perché UN FIUME può essere considerato:
A) come un CONTENITORE con l'acqua che vi scorre (Il 'canale' (chiamato 'letto') + l'acqua che vi scorre), e quindi va bene AVERE;
B) oppure come l'ACQUA STESSA che vi scorre, e quindi va bene ESSERE
(cioè, la parola FIUME può essere identificata con la stessa "massa d'acqua" che scorre nel letto. Infatti in italiano si può dire, ad esempio, "il fiume è uscito dal suo letto", identificando, come vedi, il fiume con l'acqua stessa):
"il FIUME HA STRARIPATO/È STRARIPATO".
Quindi, ricapitolando, con il verbo STRARIPARE:
1) usa ESSERE se il soggetto è il LIQUIDO che è fuoriuscito;
2) usa preferibilmente AVERE se il soggetto è un CONTENITORE come una VASCA, un SECCHIO, un CATINO, ecc.;
3) puoi usare AVERE o ESSERE indifferentemente se il soggetto è un FIUME, un LAGO, ecc..
Al numero 2) ho scritto "preferibilmente" perché non è proprio un errore, la differenza non è molto "sentita", e molta gente direbbe indifferentemente "il SECCHIO ha straripato o è straripato".
Con altri verbi simili, che indicano cioè "la fuoriuscita di un liquido", la differenza invece è più sentita, ad esempio GOCCIOLARE, che ha pure due ausiliari:
"l'ACQUA È GOCCIOLATA e piano piano ha riempito il lavandino";
"il RUBINETTO HA GOCCIOLATO per tutta la notte" (qui NON potresti mai dire È GOCCIOLATO).
Ciao!