Both 违犯 and 违反 share the meaning to violate. What are the differences between these two?
Longman Advanced Chinese Dictionary has a footnote on their entry for 違背 which explains the differences:
wéi bèi / wéi fǎn / wéi fàn
All three are verbs. They all basically carry the same meaning but「違反」and「違犯」are stronger.「違反」emphasizes the idea of falling short of, while 「違犯」emphasizes the action of going against.「違犯」is more specific and its scope of usage is more limited in comparison to「違反」.
You might also notice that 犯 is used in instances like breaking the law, where as 反 is just doing the opposite of something and is often used as the prefix: counter-.
Longman also provides some examples of usages:
[To] break the law.
[To] go against [one's] principles.