>Pensi che possa andare bene se recupero il valore di querystring
>attraverso questa funzione e poi dopo lo passo alla query sql?
la replace potrebbe essere non sufficiente.
Guarda che per creare stored procedure non ci vuole nulla.
basta che metti la tua query parametrica all'interno del "BEGIN END" della stored. Ad esempio, se la tua query parametrica fosse questa:
INSERT INTO dbo.TuaTabella (campo1, campo2, campo3) VALUES (@campo1, @campo2, @campo3)
la stored procedure potrebbe essere semplicemente questa:
CREATE PROCEDURE dbo.proc_InsertTuaTabella
@param1 int
,@param2 varchar(10)
,@param3 datetime
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO dbo.TuaTabella (campo1, campo2, campo3) VALUES (@param1, @param2, @param3)
END
e per modificarla in seguito basta sostituire CREATE con ALTER 
Comunque la reference è:
http://msdn.microsoft.com/it-it/library/ms187926.aspx
>E soprattutto come posso fare a verificare altre falle nel sito?
ci sono strumenti che controllano parte di sql injection:
http://www.databasesecurity.com/sqlinjection-tools.htm
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi