Scanning attachment before uploading on the server? - asp.net

I am giving to upload functionality, i want that files must be scaned on Server side, Before they uploaded and then they are are saved on that server.
Is there any free available antivirus engines to scan the attachment on the server?
Thanks

You can't exactly "scan" the file on the client. However, some manipulation is possible, determined by the client security settings.
I believe it is quite difficult as browsers implement such functionality differently (Internet Explorer could use ActiveX scripting for example).
You could try to look into that perhaps.
Regarding free antivirus, I believe Google has the answer ;)
But seriously, Avast and AVG are both providing home users with free versions of their antivirus. Since you haven't said anything about your purpose of the server, I don't know whether using the free versions is legal.
If you're willing to pay a bit for a AV solution, I can recomend NOD32. That said, I should mention that I have no experience with the server version. I use the workstation version, which is very light weight.

Sure, depending on what virus-checking software you're going to use for the scan -- for example, the commercial product metascan offers an API to integrate your programs with many different commercial anti-virus products.

Before uploading is hard; you could rather check it after upload but before making it available for download. To do so you can use online antivirus services - but it's a very timeconsuming solution, and you should certainly use a separate thread or service - or scan it yourself, using one of the many available antivirus engines (a few of them are free, but the others usually cost very few, less than $10 per year).
EDIT: the most famous (for me, at least) open source antivirus tool is ClamWin, which is released under GPL. For free (as in free beer) engines, I can only suggest to search "free antivirus engine" or the like, not because I'm lazy but because I've never used one and don't feel comfortable suggesting things I don't know.

Related

Note taking app with WebDav synchronization

I am looking for a good self hosted notes taking app (self hosted via WebDav, I use OwnCloud)
Some tools that I have currently ruled out - and the reasons why. Happy to be mistaken:
Laverna looks alright but it doesn't support WebDav, and I didn't find a straight forward way to sync it via, for instance, a "database" file or similar.
Tagspaces can be synced just by syncing folders but saves the tags in the filenames (not sure I can think of any scenario in which that would be acceptable). The PRO version saves the tags in "sidecar" files, but the functionality is marked as beta and the PRO version is more expensive than Evernote - it means paying quite a bit for less functionalities (even though the idea behind tagspaces looks quite unique) and hoping that it works.
OpenNote and PaperWork projects seem not very mature or active either.
I don't seem to find any other good tool out there - whether paid or not.
Thanks
You can use ownCloud with ownCloud Notes (https://github.com/owncloud/notes) in the web, it uses WebDAV for syncing. And it integrates with QOwnNotes (http://www.qownnotes.org/) on the desktop. There also is an iOS and Android app that talks to ownCloud Notes.

Alternative Java applet network drive access

Chrome is on the verge of definitly break compatability with NPAPI, and IE breaking with ActiveX the future of Java Applets is dark. Currenty we actively use a secure applet for out client organizations that enables their users to upload a bunch of files from their file system to our servers with the click of a button. The applet has full access to any configured drive, including network drives.
With the imminent death of the applet this functionality is going to be lost if we don't find an alternative. I have already tried to explore different solutions, including the chrome FileSystem API but that is currently only available for Chrome (http://caniuse.com/#feat=filesystem) and has limited access.
Does anybody know about an alternative to keep supporting the much appreciated functionality? Unfortunately we are obligated to support all browser down to IE8.
I've written a post about this here.
Once Google Chrome was the first to announce that they won’t be supporting NPAPI anymore, they were also the first to provide a new architecture in order to rewrite your code to work on their browser. You can take a look on Native Messaging, which “can exchange messages with native applications using an API that is similar to the other message passing APIs”. The problem is that this approach only works on Chrome, is not something that you can adapt to other browsers.
A more useful approach is FireBreath, a browser plugin in a post NPAPI world. Check the words below from one buddy of the project:
“FireBreath 2 will allow you to write a plugin that works in NPAPI, ActiveX, or through Native Messaging; it’s getting close to ready to go into beta. It doesn’t have any kind of real drawing support, but would work for what you describe. The install process is a bit of a pain, but it works. The FireWyrm protocol that the native messaging component uses could be used with any connection that allows passing text data; it should be possible to make it work with js-ctypes on firefox or plausibly WEB-RTC or even CORS AJAX in some way. For now the only thing we needed to solve was Chrome, but we did it in a way that should be pretty portable to other technologies.”
In light of the answer provided by Uly Marins I have researched the options suggested. Unfortunately these options weren't viable for our application, because the mayority of our users do not have sufficient rights to install third party plugins. Additionally the API is still in Beta which won't do any good in a stable production environment.
The main problem we wanted to solve was the abbility to delete files from the accessed folders. It seemed like one of the mayor goals of the removal of the NPAPI support was exactly to prevent this kind of possibility. Therefore we needed to reduce our goals to a simple solution that was still acceptable for our users, with the additional training on how to clear the selected folder manually (because most of our users are almost computer illiterate and needed to access network folders).
Long answer short. The requested solution is just not possible anymore and had to be replaced by a simpler solution and additional training.

In-browser reader for Adobe Content Server

Is there an in-browser, Flash-free method to view ebooks from Adobe Content Server?
We currently offer a library of c.50k specialist ebooks via a feature-rich "ereader" web-app (HTML5/JS based with various fallbacks down to IE7).
However, management want to be able to offer "downloadable" ebooks for "mobile devices". By this they mean a file that the user can download and read offline. Adobe Content Server is fine for this (if a little expensive, and a little hated by the users, but unfortunately it's becoming an industry standard...)
OK so if we adopt ACS, making downloadable-for-offline-reading a possibility, what are the options for online reading, assuming we want to use ACS for everything and not just offline? In other words ... is there an in-browser reader for Adobe Content Server?
Flash is not a possibility as a) a lot of the users us iPads (yes for online reading too) and b) a lot of the users have to use IE7 with no Flash installed (the NHS is a major customer).
I realise I might be asking for the impossible but I thought it would be worth hearing peoples' thoughts.
Please don't advise me not to use DRM, it's not my choice and I have already advised against using it. However we are contractually obliged by our suppliers to have "a DRM solution" for offline reading.
If there was a widely-available alternative solution to Adobe Content Server I'd be interested to hear about it. I have already integrated ACS once (version 3) and don't really look forward to repeat the experience...
There are a number of reader apps which support ACS, such as Sony Reader. Your readers can use those apps (after "sideloading" your books, a process which differs from reader to reader) to read the ACS books. I don't know of any browser-based reader, but it seems to me that the apps (which exist for all major platforms) should get the job done for you. These apps all keep local copies of books and work just fine offline.

Simulating a TWAIN Device

Our company is using some software that ONLY accepts input from an "Imaging Device" i.e. a TWAIN device (e.g. scanner).
The problem is that we are receiving our files digitally, so using an actual scanner would require us to print, scan, and shred documents that we already have on the computer, but not in the software.
I was curious if anybody has any idea of how we might be able to work around this problem in the meantime. My first thought was to find some way to trick the program into thinking we're using a scanner, via some new 'imaging device' that would just read in the file, and spit it out to the software, but I don't even know where to begin with that.
We put in a feature request, seeing as how this problem should obviously be addressed in the software itself, but the company is notorious for lagging pretty hard when it comes to updates.
The system used by scanners is called TWAIN, so you'd be looking for some sort of virtual twain driver.
A quick google search will produce several hits, I don't have any experience with the software myself so can't advise any further.
Two such providers I found via experts exchange:
http://www.twaintools.de
http://www.scanpoint-usa.com
OK, months late... but in case you are interested, I have a TWAIN driver framework/toolkit that might let you build this fairly easily, depending on just what your scanning app expects, and how hard it is to read images from your digital documents. It's a Microsoft Visual C++ project. No charge but you'd need our permission to redistribute a driver based on it: GenDS
The TWAIN Working Group also has a sample/skeleton driver, I think it's straight C - and used to have some rather bad bugs (Why I wrote mine ;-) but, it might have got better.
Look for the "sample data source and application" on their download page.
And of course I have a 'commercial' version of GenDS that I use to write TWAIN drivers on contract.

What are you using for Distributed Caching in web farms running ASP.NET?

I am curious as to what others are using in this situation. I know a couple of the options that are out there like a memcached port or ScaleOutSoftware. The memcached ports don't seem to be actively worked on (correct me if I'm wrong). ScaleOutSoftware is too expensive for me (I don't doubt it is worth it). This is not to say that I don't want to hear about people using memcached or ScaleOutSoftware. I'm just stating what I "know" at this point.
So my question is basically this: for those of you ACTIVELY using distributed caching, what are you using, are you happy with it, and what should I look out for?
I am moving to two servers very soon...both will be at the same location. I use caching fairly heavily (but carefully) to reduce the load on my database server.
Edit: I downloaded Scaleout Software's solution. I've coded for it and it seems to work real well. I just have to decide if my wallet will part with the cash for it. :) Anyone have experiences good or bad with ScaleoutSoftware?
Edit Again: It's been a little while since I asked this? Any more thoughts on it? We ended up buying the solution from ScaleOutSoftware and have been happy with it, but I'm curious what others are doing.
Microsoft has a product pending code-named Velocity. It's still in CTP, and is moving slowly, but looks like it will be pretty good. We'll be beating it up in the near future to see how it handles what we want it to do (> 2 million read/writes per hour). Will post back with results.
There is a 100% native .NET, well documented open source (LGPL) project called Shared Cache. Looks like it is not yet mentioned on SO, but it's promising and should be able to do what most people expect from a distributed cache. It even supports different strategies like distributed or replicated caching etc.
I will update this post with more details as soon as I had a chance to try it on a real project.
We're currently using an incredibly simple cache that I wrote in a couple of hours, based on re-hosting the ASP.NET cache in a Windows Service (more info and source code here). I won't pretend it's anywhere near as optimised as something like Memcached but we were just looking for something simple and free until Velocity came along, and it's held up extremely well even under fairly heavy load.
It comes down to our personal preference for core components - i.e. ones that affect whether the site is available or not - that they are either (a) supported by a vendor with a history of rapid and high quality support, or (b) written by us so that if something goes wrong we can fix it quickly. Open source is all well and good, and indeed we do use some OSS, but if your site is offline then unfortunately newsgroups et al don't have a 1 hour SLA, and just because it's OSS doesn't mean you have the necessary understanding or ability to fix it yourself.
We are using the memcached port for Windows and we are very pleased with it. The enyim.com memcached client API is great and easy to work with. It's also open source, which is a big advantage, if you ask me.
We are now using this setup in a production web-app and it has helped a lot in improving its performance.
There's a great .NET wrapper/port found here on Codeplex. Awesomesauce!
We use memcached with the enyim library in a production environment (www.funda.nl). Works fine, very pleased with it, but we did notice a substantial raise in CPU use on the clients. Presumably due to the serializing/deserializing going on. We do around 1000 reads per second.
One tried and tested product by 100's of customers worldwide is NCache. Its
a feature rich product that lets you store session state in a redundant and highly available manner, lets you share data
within the enterprise as well as bridging for WAN communication essentially acting as a data fabric and lastly it lets you build an elastic caching tier so that when
your application scales, you can add servers to the cache and actually boost performance further.

Resources