Secure Way of sending argument from one page to another
You can symmetrically encrypt the data into a cipher before sending it, and decrypt it at the receiving page.  This will not stop anyone from seeing the encrypted data, but they will not have access to the encryption key and will therefore not be able to understand the data.

If the data to passed is short, the encrypted data can be passed in the URL.  To use an URL, just base-64 encode the resulting cipher so it can be represented by a string (and base-64 decode it at the receiving end to get back the cipher).  Remember to decrypt to convert from the cipher to the original cleartext. 

If the data is too bulky to fit in an URL, you may use a session variable to transfer the cipher.  Then you can skip the base-64 encode/decode step.  A session variable is not secure. However, just as with the URL, encryption will keep the data confidential.

Or, you can simply use pass the data using the database.  This requires you to create a very small custom module that associates the data with a token that does not give away any information (e.g. an integer).  You then pass the token by means of the URL, e.g.:

http://XXXX/someURL?tokenid=15


The receiving page then use this token to look up the data in the database.