web application – watch out for directory traversal/path traversal security problem

After some research on the internet and read some articles/posts about directory traversal/path traversal security problem, I still don’t quite get when I need to watch out for this kind of security problem, should I always need to watch out for this kind of security problem when I am developing a back-end or only when I am doing/implementing certain things/features?

title – Showing file directory on Sharepoint

I’m just starting to learn how to use Sharepoint. I don’t have a background in IT and am not very sure of the correct terms to use to use so do please bear with me as I try to explain.

I understand that SharePoint uses the root folder name as part of the url. After creation of the root folder, we can change SharePoint library title where by doing so, does not change its internal name (which is the root folder name).

In my SharePoint site, I have a few document libraries which have been assigned internal names and I renamed the title for each one of them. I’d like to facilitate navigation on Sharepoint by showing the directory. Is it possible to display on Sharepoint, a directory that is in some form of Tree/branching format, but reflect the title of the document library, instead of the root folder name?

15 Manual Directory Submission with Insatant Approval live links from authority web directories for $2

15 Manual Directory Submission with Insatant Approval live links from authority web directories


I will create 15 Instant approval Directory Submissions links from High authority web directories. I will select the

right category according to your website. This will provide your site the actual value.

Why you should choose me?

I will provide you Live links, you may not get directory submission live links from most of the sellers. I will do it manually. I do not Submit websites in Spammy and porn directories.

You will get in this service :

  • Manual submissions
  • 100% Live Links
  • Submission in Right Category
  • SEO Friendly Links
  • Instant Approval
  • Full Work Report

Note: I don’t accept Adult websites


group policy – Windows Server 2016 Active Directory: Granting Admin to a User for only specific machines

I have granted local admin to several machines for an active directory user who requested / needed this access. I did not want to grant admin to the entire domain and server, but instead to only specific terminals.

I found a post online about granting local administrator for specific machines using group policy management and group policy management editor. (Found below)


I created an OU (i.e. contains All Computers in domain) and created another OU (i.e. contains Specific Computers) inside that contains the computers I wanted to grant admin access for this user to.

I applied the custom Local Admin GPO and linked it to the Specific Computers OU inside of the All Computers OU. This seems to have worked to grant Local admin to those specific computers for this user…

My question being, what If I wanted to at another time give someone else admin access only to 2-3 of the computers inside the the Specific computers OU?

Is there an easier way to do this? I played around with a security group (added specific computers) and tried to have this be the method to grant admin access but could not figure it out.

Please let me know what you think.

Thank you!

Active Directory Group Policy – Allow Outlook through proxy settings

I am trying to allow access to Outlook(MS Office Standard 2016) access through an Active Directory Group Policy proxy I have created.

I am allowing a specific set of websites to a specific set of workstations. I have made this work by:

a) removing Firefox, Chrome, and IE11 from the workstation, leaving only Edge, and

b) in Group Policy(User Config->Preferences->Windows Settings->Registry), I have configured registry keys to set up a dummy proxy server, and then override it to allow the specific websites through. It may not be pretty, but it is working.

When I have set up the above configuration, I find that Outlook is showing a “Disconnected” status with this Group Policy. What parameters in the ProxyOverride need to be configured to allow Outlook access through the proxy?

Windows Server 2016/Active Directory —
Windows 10 environment —
Outlook(MS Office Standard 2016)

Thanks for your input!


active directory – Querying AD from SQL Server

I’ve read tons of questions and answers about my error but none of them helped me ( from PINAL website, microsoft links and everything ). questions from 9 years ago to today.

I created a Linked server with proper user/pass to read info from our AD.

but it doesn’t matter what user I use ( we tried everything, even with the most powerfull user we have in the network that can make it rain if it wants ) and I still get the same error:

Msg 7399, Level 16, State 1, Line 16
The OLE DB provider "ADsDSOObject" for linked server "ADSI" reported an error. The provider indicates that the user did not have the permission to perform the operation.

i tried to run SSMS with the user with no success. I set the secutiry tab to run with the specific user that can read the AD.

these are the queries i'm trying :
SELECT top 100 * FROM OpenQuery (
ADSI, 'SELECT displayname FROM 

(ADSI,'SELECT displayname FROM 

SELECT * FROM OpenQuery (
FROM ''LDAP://myDomain.local/DC=MyDomain,DC=local''
WHERE objectClass = ''User''

I opened management studio with this powerfull user and it still doesnt work. what can be the error here?

c# – Namespace list to directory structure


I have a list of namespaces I extracted from types, and I which to create a directory structure, that represents these namespaces. So that I can place a file at the namespace path of each type.
The simplest method would be to replace the . separator with a \, and call it a day. But I want to be fancy, so I set myself the goal to minimize the number of directories created.


This I do by not creating a directory, when no type with the namespace exists, instead keep the . where it is.

split all namespaces into their segments
for each unique namespace in namespaces
  for each segment in namespace, index i
    list all namespaces where segments are equal as shared
    if shared has lost namespaces compared to previous shared
      for each namespace(i) previous shared
        replace '.' with '\' 
      replace '.' with '\' in namespace(i)
    set previous shared to shared
  add namespace to namespaces
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;  

public class Program
    public static void Main()
        string() namespaces = new() { // Set namespaces from types
        /* Should result in this list of directories:
         * Root.Sub11/Sub11/Sub3
         * Root.Sub11/Sub11
         * Root.Sub11/Sub21
         * Root.Sub11/Sub21/Sub12
         * Root.Sub11/Sub21/Sub13.Sub14
         * Root.Sub11/Sub21/Sub13.Sub14
         * Root.Sub11/Sub21/Sub13.Sub14
         * Root.Sub11/Sub21/Sub13.Sub14/Sub57
        NamespacesToDirectoryStructure(namespaces.Select(n => n.Split(".")));
        var sb = new StringBuilder();
        foreach(var dir in typeNamespaceToPathMap.Values)
            sb.AppendLine(new string(dir));
    private static readonly IDictionary<string(), char()> typeNamespaceToPathMap = new Dictionary<string(), char()>();

    private static void NamespacesToDirectoryStructure(IEnumerable<string()> namespaces)
        IList<string()> processedTypeNamespaces = new List<string()>();
        foreach (string() segments in namespaces
                 .Distinct(new StringSequenceEqualityComparer())
                 .OrderBy(n => n.Length))
            int segment = 0;
            char() path = string.Join('.', segments).ToCharArray();
            IList<int> sharedNamespacePortionIndices;
            IList<string()> sharedNamespacePortions = processedTypeNamespaces;
                // All namespaces, that share the segment and all previous with this.
                sharedNamespacePortionIndices = IndexOfAll(sharedNamespacePortions, segments, segment).ToList();
                if (segment != 0)
                    // All namespaces, that share all previous segments with this.
                    IList<int> indices = sharedNamespacePortionIndices;
                    IEnumerable<string()> removedNamespaces = TakeWhere(sharedNamespacePortions, (i, x) => !indices.Contains(i));
                    if (removedNamespaces.Any())
                        // Convert the (.) to () to indicate a path branching for all that share previous segments
                        int charIndex = segments.Take(segment).Select(s => s.Length).Aggregate(0, (x, y) => x + y + 1) - 1;
                        path(charIndex) = '\';
                        foreach (char() value in typeNamespaceToPathMap
                                 .Where(kvp => kvp.Value.Length > charIndex && (ReferenceEquals(kvp.Key, segments) || sharedNamespacePortions.Contains(kvp.Key)))
                                 .Select(kvp => kvp.Value))
                            value(charIndex) = '\';

                sharedNamespacePortions = TakeWhere(sharedNamespacePortions, (i, x) => sharedNamespacePortionIndices.Contains(i)).ToList();
            } while (segment < segments.Length && sharedNamespacePortions.Count > 0);

            typeNamespaceToPathMap.Add(segments, path);

    // Enumerates all items of the collection where the segment is equal to the segment at the same position - specified by segment - in test.
    private static IEnumerable<int> IndexOfAll(IList<string()> collection, string() test, int segment)
        for (int index = 0; index < collection.Count; index++)
            if (collection(index).Length > segment && String.Equals(test(segment), collection(index)(segment), StringComparison.Ordinal))
                yield return index;

    private static IEnumerable<string()> TakeWhere(IList<string()> collection, Func<int, string(), bool> predicate)
        for (int i = 0; i < collection.Count; i++)
            if (predicate(i, collection(i)))
                yield return collection(i);

    private class StringSequenceEqualityComparer : IEqualityComparer<string()>
        public bool Equals(string() x, string() y) => !(x is null) && x.Length == y?.Length && x.SequenceEqual(y, StringComparer.Ordinal);

        public int GetHashCode(string() obj) => obj.GetHashCode();

Code on dotnetfiddle


While the code above works perfectly fine, the algorithm is redicolusily expensive and has way to much memory overhead for my liking. But I am at the end of my wits in regards to optimizing this code, while intuitively the desired behaviour should be achievable with much less computational effort. So I feel like I am missing something important here.


So I need all the opinions I can get

  • A: on how to optimize my existing code, or
  • B: on a fundamentally different approach to the problem, that yields a simplier solution.

Thanks in advance, and happy coding!

Manually Created 50 Directory Submission Backlinks To Rank Up Website for $5

Manually Created 50 Directory Submission Backlinks To Rank Up Website

High Quality Directory Submission Backlinks Service


Welcome to my service. I am happy to have you.

We all Know there are many ways to the internet is link building. Link building always the most significant part of Off Page SEO. The several time it is possible to rank in Google, without good quality content but not without backlinks.

Directory submission is a popular Off-Page SEO technique in which the website links (URL) are submitted to various online directories for the purpose of creating backlinks.

Main Features Of My Work:

  • 50 Free Directory Backlinks
  • High Authority Directory sites
  • Manual Creation
  • Submit in Right Category
  • White Hat Method
  • Safe & Friendly backlinks for Search Engine
  • Increase traffic to your site
  • Not use Automatic Bots
  • No Spam links
  • Provide full details on excel sheet

I appreciate ROI, Google Algorithm all over Link building strategy and I measure any risk before the first to last link building result is made with different needs and goals. Thanks for your time!


linux – How can I iterate parameters passed by a user and compare it with the list in present working directory in bash script

I want write a scipt that will take the list of directories within the present working directory and compare it with all parameters passed by the user.
It should count whichever parameters equal to the name of directories within the list.
Also, the directory names may or may not contain spaces and special characters. Hence I want to iterate the values with a null character.

Below is what I came up with, but the problem with this approach is that I am not able to use the counter(int_v) value out side of the while loop.

find */ -type d 2>/dev/null -print0 | while read -d $'' file
        for a in $@
                if ( $file == $a );
                        echo $int_v

echo "There are $int_v matching files"

Any ideas on how do I get the counter value out of the loop.