Cycles, material with color based on height and backside in different colors
A basic way to control the color based on height would be to use the coordinates on the Z axis and have those control a color ramp.



To have the backside be a different color use bacfacing, from the geometry node, to control the mix with a different shader.



From there on, is just a matter of making the material as complex as you want until you are happy with the results.



or



Endless fun playing with textures.