How does an OSPF router validate the received LSA from neighbor?
Good one there !
Though am not so sure about the answer, but will light up what i feel it is.
Every Ospf packets, from Type 1 to Type 5 have the same Ospf header fields except for the type field (which actually defines whether its hello, dbd et al)
Again the Ospf neighbors will start exchanging LSA's only after the neighborship is formed (the mandatory attributes to be matched and present)
If the recieving router gets any Ospf packet with a change in this attribute, for eg: Router id it will not/should not accept the LSA'a
In short Ospf validates the neighbor structure in every recieved packet types and hence validates the source.
It is a complicated process, but Ospf does keep track of the neighbor data structure and updates or any changes too.
I guess it depends on what you mean by validate. There is a checksum that is used in OSPF to make sure the OSPF update was not corrupted for some reason.