A method of obfuscating data in a data object, comprising: receiving, by an intercepting proxy server computer, the data object from a client device; at the intercepting proxy server computer, generating a modified data object for transmission to a server computer in a cloud, comprising: (i) identifying a real data element in the data object; (ii) creating a token having a random token value; (iii) concatenating a predetermined prefix and the random token value to generate a replacement value; (iv) storing the real data element in a look up table indexed by the random token value; (v) replacing the real data element with the replacement value, thus generating the modified data object; (vi) transmitting the modified data object from the intercepting proxy server computer to the server computer in the cloud; the method being characterized by the steps: (vii) receiving a returned data object, comprising a returned data element, from the server computer in the cloud; (viii) identifying the returned data element as a token-to-be-replaced; (ix) replacing the token-to-be-replaced with the real data element, thereby generating a modified returned data object; and (x) transmitting the modified returned data object to the client device. receiving, by an intercepting proxy server computer, the data object from a client device; at the intercepting proxy server computer, generating a modified data object for transmission to a server computer in a cloud, comprising: (i) identifying a real data element in the data object; (ii) creating a token having a random token value; (iii) concatenating a predetermined prefix and the random token value to generate a replacement value; (iv) storing the real data element in a look up table indexed by the random token value; (v) replacing the real data element with the replacement value, thus generating the modified data object; (vi) transmitting the modified data object from the intercepting proxy server computer to the server computer in the cloud; the method being characterized by the steps: (vii) receiving a returned data object, comprising a returned data element, from the server computer in the cloud; (viii) identifying the returned data element as a token-to-be-replaced; (ix) replacing the token-to-be-replaced with the real data element, thereby generating a modified returned data object; and (x) transmitting the modified returned data object to the client device. (i) identifying a real data element in the data object; (ii) creating a token having a random token value; (iii) concatenating a predetermined prefix and the random token value to generate a replacement value; (iv) storing the real data element in a look up table indexed by the random token value; (v) replacing the real data element with the replacement value, thus generating the modified data object; (vi) transmitting the modified data object from the intercepting proxy server computer to the server computer in the cloud; (vii) receiving a returned data object, comprising a returned data element, from the server computer in the cloud; (viii) identifying the returned data element as a token-to-be-replaced; (ix) replacing the token-to-be-replaced with the real data element, thereby generating a modified returned data object; and (x) transmitting the modified returned data object to the client device.