This is a very simple page for remote viewing and editing of your SpamFilter.ini and related .txt files. It will create a backup of your current file when you save any changes, it will also show you a history of any changes so you may view any of the old settings and copy them. It is best to run this on an authenticated web site, with appropriate permissions set on the files.
To Install: - Copy the asp code below and create SpamConfig.asp on your webserver - Create the directory ..\Spamfilter\OldSettings, for backups and logs in your Spamfilter installation directory - Modify root paths as desired, default = C:\Program files\Spamfilter...
*code below, copy and paste into - SpamConfig.asp*
<html> <body> <% ' USE AT YOUR OWN RISK. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANY CONTRIBUTOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ' Intended use: ' This asp page is designed to edit SpamFilter.ini and any .txt files located in the SpamFilter directory, it also keeps a running backup and log of any changes made through this page. ' Additional Information: ' Highly recommended to only use this page on a website with authentication enabled, and applicable file security set appropriately to authorized users; i.e. WWWUSER should have not access to your SpamFilter directory. ' Default root paths are hard coded here for additional security, this should only allow .txt files and SpamFilter.ini in that directory to be modified. ' dirbackup is used to keep an archive of any changes made through this asp page (default setting requires the creation of the a folder OldSettings in the Spamfilter installation directory) ' History of any changes is also kept in the dirbackup folder by adding ".log" to the end of the edited file, with links to display the backupfile.
dirspam="C:\Program Files\SpamFilter\" dirbackup="C:\Program Files\SpamFilter\OldSettings\" filespam = "SpamFilter.ini"
' check if file was carried over from form, if not check parameter sent to asp with ?file=, if still not found use SpamFilter.ini from above fileedit = request.form("fileedit") if fileedit="" then fileedit = request.querystring("file") end if if fileedit = "" then fileedit = filespam else if (right(fileedit,4)<>".txt") and (fileedit <> filespam) then fileedit = fileedit & ".txt" 'allow only .txt and spamfilter.ini edits end if end if set fs=Server.CreateObject("Scripting.FileSystemObject") ' Check if a showbackup file was request with showbackup=(backupfile) showbackup=request.querystring("showbackup") if showbackup<>"" then if fs.FileExists(dirbackup & showbackup) then ' read backup file set FName=fs.OpenTextFile(dirbackup & showbackup,1, False , -2) bkupContents = FName.ReadAll FName.Close end if end if if request.form("editing")="true" then Contents = request.form("Contents") backupfile = "SFBU-" & year(now()) & right("0" & month(now()),2) & right("0" & day(now()),2) & "-" & right("0" & hour(now()),2) & right("0" & minute(now()),2) & right("0" & second(now()),2) & "-"& fileedit 'backup original file if it exists if fs.FileExists(dirspam & fileedit) then ' read original file set FName=fs.OpenTextFile(dirspam & fileedit,1, False , -2) bkupContents = FName.ReadAll FName.Close ' write changes set FName=fs.OpenTextFile(dirbackup & backupfile,2,true) FName.writeline bkupContents FName.Close response.write("File Backed up to:" & dirbackup & backupfile & "<br>") 'write out html log of edits set FName=fs.OpenTextFile(dirbackup & fileedit & ".log",8,true) htmlline="<a href=Spamconfig.asp?file=" & fileedit & "&showbackup=" & backupfile & ">" & backupfile &"</a><br>" & vbcrlf FName.writeline htmlLine FName.Close end if ' write out the changes to the file set FName=fs.OpenTextFile(dirspam & fileedit,2,true) FName.writeline Contents FName.Close response.write("File Saved:" & dirspam & fileedit) else 'read file if fs.FileExists(dirspam & fileedit) then set FName=fs.OpenTextFile(dirspam & fileedit,1, False , -2) Contents = FName.ReadAll FName.Close else response.write("New File:" & dirspam & fileedit) end if end if %> <form method="POST" action="SpamConfig.asp"> <input type=hidden name="editing" value="true"> <input type=hidden name="fileedit" value="<%=fileedit%>"> <table border="0" cellpadding="0" cellspacing="0" width="780"> <tr><td><%=fileedit%></td> <% if showbackup<>"" then %> <td> <%=showbackup%> </td> <% end if %> </tr> <% if showbackup<>"" then %> <tr> <td> <textarea rows="44" name="Contents" cols="50"><%=contents%></textarea> </td> <td> <textarea rows="44" name="Contents" cols="50" readonly="true"><%=bkupContents%></textarea> </td> </tr> <% else %> <tr> <td> <textarea rows="44" name="Contents" cols="100"><%=contents%></textarea> </td> </tr> <% end if %> </table> <table border="0" cellpadding="0" cellspacing="0" width="380"> <tr> <td width="278"><p><input type="submit" value="Back" name="B1" onclick="javascript:history.back()"> </td> <td width="294"><p align="center"><input type="reset" value="Reset" name="B2"></p></td> <td width="275"><p align="right"><input type="submit" value="Save" name="B3"></p></td> </tr> </table> </form> <p> Related files detected in <a href="SpamConfig.asp"><%=dirspam & filespam%></a>. </p> <ul> <% 'read default spamfilter.ini settings if needed for linksfile if fileedit <> filespam then if fs.FileExists(dirspam & filespam) then set FName=fs.OpenTextFile(dirspam & filespam,1, False , -2) Contents = FName.ReadAll FName.Close else response.write("SpamFilter.ini missing:" & dirspam & fileedit) response.end end if end if
' parse spamfilter.ini to scan for any filename= and provide links to edit them strContents = contents intFN = instr(strContents,"FileName=") while (intFN>1) intStart=1 for intI=intFN to 1 step -1 if mid(strContents,intI,2)=vbcrlf then intStart=intI+2 intI=0 end if next intEnd = instr(intFN,strContents,vbcrlf) strDesc = mid(strContents, intStart, intFN - intStart + 9) strName = mid(strContents,intFN + 9, intEnd - intFN - 9) strLink = strName 'remove any pathing, to only allow editing in defined spam filter directory for intI=len(strName) to 1 step -1 if mid(strName,intI,1)="\" then strLink = mid(strName,intI+1,len(strName)-IntI) intI=0 end if next if strname <>"" then %> <li> <%=strDesc%><a href="SpamConfig.asp?file=<%=strLink%>"><%=strNa me%></a></li> <% end if &nbs p; &nbs p; strContents = mid(strContents,intEnd+1,65000) intFN = instr(strContents,"FileName=") wend %> </ul> Backup File History <ul> <% ' Read any history log and display it if fs.FileExists(dirbackup & fileedit & ".log") then ' read log file set FName=fs.OpenTextFile(dirbackup & fileedit & ".log",1, False , -2) logContents = FName.ReadAll FName.Close response.write(logContents) end if
'cleanup file handles set FName=nothing set fs=nothing
%>
</ul>
</body> </html>
|